La fonctionnalité DataprocFileOutputCommitter est une version améliorée de FileOutputCommitter Open Source. Il permet aux jobs Apache Spark d'écrire simultanément dans un emplacement de sortie.
Limites
La fonctionnalité DataprocFileOutputCommitter est compatible avec les jobs Spark exécutés sur des clusters Compute Engine Dataproc créés avec les versions d'image suivantes :
Versions 2.1.10 et ultérieures des images 2.1
Versions 2.0.62 et ultérieures des images 2.0
Utiliser DataprocFileOutputCommitter
Pour utiliser cette fonction :
Créez un cluster Dataproc sur Compute Engine à l'aide des versions d'image
2.1.10ou2.0.62, ou ultérieures.Définissez
spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactoryetspark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=falsecomme propriété de tâche lorsque vous envoyez une tâche Spark au cluster.- Exemple de Google Cloud CLI :
gcloud dataproc jobs submit spark \ --properties=spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory,spark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false \ --region=REGION \ other args ...
- Exemple de code :
sc.hadoopConfiguration.set("spark.hadoop.mapreduce.outputcommitter.factory.class","org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory") sc.hadoopConfiguration.set("spark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs","false")