Exécuter des tâches Spark avec DataprocFileOutputCommitter

La fonctionnalité DataprocFileOutputCommitter est une fonctionnalité la version Open Source FileOutputCommitter. Il active les écritures simultanées par les jobs Apache Spark dans un emplacement de sortie.

Limites

La fonctionnalité DataprocFileOutputCommitter est compatible avec les jobs Spark exécutés sur Les clusters Compute Engine Dataproc créés avec les versions d'image suivantes:

  • Versions d'image 2.1 2.1.10 et ultérieures

  • Images 2.0 versions 2.0.62 et ultérieures

Utiliser DataprocFileOutputCommitter

Pour utiliser cette fonction :

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

  2. Définir spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory et spark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false en tant que 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")