Spark-Jobs mit DataprocFileOutputCommitter ausführen

Die Funktion DataprocFileOutputCommitter ist eine erweiterte Version des Open-Source-Tools FileOutputCommitter. Sie ermöglicht gleichzeitige Schreibvorgänge von Apache Spark-Jobs an einen Ausgabespeicherort.

Beschränkungen

Die Funktion DataprocFileOutputCommitter unterstützt Spark-Jobs, die in Dataproc Compute Engine-Clustern ausgeführt werden, die mit den folgenden Image-Versionen erstellt wurden:

  • Image-Versionen 2.1.10 und höher

  • Image-Versionen 2.0.62 und höher

DataprocFileOutputCommitter verwenden

Wenn Sie diese Funktion verwenden möchten, gehen Sie so vor:

  1. Erstellen Sie einen Dataproc in Compute Engine-Cluster mit den Image-Versionen 2.1.10 oder 2.0.62 oder höher.

  2. Legen Sie spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory und spark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false als Jobattribut fest, wenn Sie einen Spark-Job an den Cluster senden.

    • Google Cloud CLI-Beispiel:
    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 ...
    
    • Codebeispiel:
    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")
    
    festlegen.