Exécuter des tâches Spark avec DataprocFileOutputCommitter

La fonctionnalité DataprocFileOutputCommitter est une version améliorée de la fonctionnalité Open Source FileOutputCommitter. Elle 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 Dataproc Compute Engine créés avec les versions d'image suivantes :

  • Versions d'image 2.1.10 et ultérieures

  • Versions d'image 2.0.62 et ultérieures

Utiliser DataprocFileOutputCommitter

Pour utiliser cette fonctionnalité :

  1. Créez un cluster Dataproc sur Compute Engine à l'aide des versions d'image 2.1.10 ou 2.0.62 ou ultérieures.

  2. Définissez spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory et spark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false comme propriété de job lorsque vous envoyez un job Spark au cluster.

    • Exemple avec 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")