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 作业时,将
spark.hadoop.mapreduce.outputcommitter.factory.class=org.apache.hadoop.mapreduce.lib.output.DataprocFileOutputCommitterFactory
和spark.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")