Menjalankan tugas Spark dengan DataprocFileOutputCommitter

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

Batasan

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

  • Gambar 2.1 versi 2.1.10 dan yang lebih tinggi

  • Gambar 2.0 versi 2.0.62 dan yang lebih tinggi

Gunakan DataprocFileOutputCommitter

Untuk menggunakan fitur ini:

  1. Buat Dataproc di cluster Compute Engine menggunakan versi gambar 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 mengirimkan 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")