DataprocFileOutputCommitter を使用して Spark ジョブを実行する

DataprocFileOutputCommitter 機能は、オープンソース FileOutputCommitter の拡張バージョンです。これにより、Apache Spark ジョブによる出力場所への同時書き込みが可能になります。

制限事項

DataprocFileOutputCommitter 機能は、次のイメージ バージョンで作成された Dataproc Compute Engine クラスタで実行される Spark ジョブをサポートしています。

  • 2.1 イメージ バージョン 2.1.10 以降

  • 2.0 イメージ バージョン 2.0.62 以降

DataprocFileOutputCommitter を使用する

この機能を使用するには:

  1. イメージ バージョン 2.1.10 または 2.0.62 以降を使用して Compute Engine クラスタ上に Dataproc を作成します。

  2. クラスタに Spark ジョブを送信するときに、spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactoryspark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false をジョブ プロパティとして設定します。

    • 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 ...
    
    • サンプルコード:
    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")