Eseguire job Spark con DataprocFileOutputCommitter

La funzionalità DataprocFileOutputCommitter è una versione migliorata di FileOutputCommitter open source. it consente scritture simultanee da parte di job Apache Spark in una posizione di output.

Limitazioni

La funzionalità DataprocFileOutputCommitter supporta i job Spark eseguiti su cluster Dataproc Compute Engine creati con le seguenti versioni dell'immagine:

  • 2.1 immagini versioni 2.1.10 e successive

  • Versioni immagine 2.0 2.0.62 e successive

Utilizza DataprocFileOutputCommitter

Per utilizzare questa funzionalità:

  1. Crea un cluster Dataproc su Compute Engine utilizzando le versioni dell'immagine 2.1.10 o 2.0.62 o successive.

  2. Imposta spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory e spark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false come proprietà job quando invii un job Spark nel cluster.

    • Esempio di 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 ...
    
    • Esempio di codice:
    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")