Exécuter des tâches Spark avec DataprocFileOutputCommitter

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 Managed Service pour Apache Spark créés avec les versions d'image suivantes :

  • Versions 2.1.10 et ultérieures des images 2.1

  • Versions d'image 2.0.62 et ultérieures

Utiliser DataprocFileOutputCommitter

Pour utiliser cette fonctionnalité :

  1. Créez un cluster Managed Service pour Apache Spark 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 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")