DataprocFileOutputCommitter 功能是開放原始碼 FileOutputCommitter 的強化版本,可讓 Apache Spark 工作同時寫入輸出位置。
限制
DataprocFileOutputCommitter 功能支援在 Dataproc Compute Engine 叢集上執行的 Spark 工作,這些叢集是使用下列映像檔版本建立:
2.1 映像檔版本 2.1.10 以上
2.0 映像檔版本 2.0.62 以上
使用 DataprocFileOutputCommitter
如要使用這項功能:
請使用
2.1.10或2.0.62以上的映像檔版本,建立 Dataproc on Compute Engine 叢集。請將
spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory和spark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false設為工作屬性,然後將 Spark 工作提交至叢集。- 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")