Esecuzione di job Spark con DataprocFileOutputCommitter

La funzionalità DataprocFileOutputCommitter è una versione avanzata dell'open source FileOutputCommitter. Abilita le scritture simultanee da parte di job Apache Spark in una posizione di output.

Limitazioni

La funzionalità DataprocFileOutputCommitter supporta l'esecuzione di job Spark su cluster Dataproc Compute Engine creati con le seguenti versioni immagine:

  • 2.1 versioni immagine 2.1.10 e successive

  • 2.0 versioni immagine 2.0.62 e successive

Utilizza DataprocFileOutputCommitter

Per utilizzare questa funzione:

  1. Crea un cluster Dataproc su Compute Engine utilizzando immagini con versione 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à del job quando invii un job Spark al 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")