Menjalankan tugas Spark dengan DataprocFileOutputCommitter

Fitur DataprocFileOutputCommitter adalah versi FileOutputCommitter open source yang ditingkatkan. Hal ini memungkinkan penulisan serentak oleh tugas Apache Spark ke lokasi output.

Batasan

Fitur DataprocFileOutputCommitter mendukung tugas Spark yang dijalankan di cluster Dataproc Compute Engine yang dibuat dengan versi image berikut:

  • Image 2.1 versi 2.1.10 dan yang lebih tinggi

  • Versi image 2.0 2.0.62 dan yang lebih tinggi

Gunakan DataprocFileOutputCommitter

Untuk menggunakan fitur ini:

  1. Buat cluster Dataproc di Compute Engine menggunakan versi image 2.1.10 atau 2.0.62 atau yang lebih tinggi.

  2. Tetapkan spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory dan spark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false sebagai properti tugas saat Anda mengirim tugas Spark ke cluster.

    • Contoh 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 ...
    
    • Contoh kode:
    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")