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")