【发布时间】:2019-06-07 11:09:35
【问题描述】:
我正在使用:
- emr-5.20.0
- Hadoop 2.8.5
- Spark 2.4.0
我的一项 Spark 作业将 parquet 数据写入 s3,这似乎在 20-30 分钟内完成,90% 的处理完成,但最后 5-10% 需要 2 小时才能完成。我阅读了很多论坛,并了解到 EMR 正在使用优化的输出提交程序,但它仍然需要太多时间。我正在尝试配置自定义提交者,但该作业始终使用 EmrOptimizedSparkSqlParquetOutputCommitter,我如何禁用此功能并添加自定义提交者......以下是日志:
19/01/12 23:17:11 INFO FileOutputCommitter: File Output Committer Algorithm version is 2
19/01/12 23:17:11 INFO FileOutputCommitter: FileOutputCommitter skip cleanup _temporary folders under output directory:false, ignore cleanup failures: true
19/01/12 23:17:11 INFO SQLHadoopMapReduceCommitProtocol: Using user defined output committer class com.amazon.emr.committer.EmrOptimizedSparkSqlParquetOutputCommitter
19/01/12 23:17:11 INFO EmrOptimizedParquetOutputCommitter: EMR Optimized Committer: ENABLED
19/01/12 23:17:11 INFO EmrOptimizedParquetOutputCommitter: Using output committer class org.apache.hadoop.mapreduce.lib.output.FileSystemOptimizedCommitter
19/01/12 23:17:11 INFO FileOutputCommitter: File Output Committer Algorithm version is 2
19/01/12 23:17:11 INFO FileOutputCommitter: FileOutputCommitter skip cleanup _temporary folders under output directory:false, ignore cleanup failures: true
19/01/12 23:17:11 INFO FileOutputCommitter: File Output Committer Algorithm version is 2
19/01/12 23:17:11 INFO FileOutputCommitter: FileOutputCommitter skip cleanup _temporary folders under output directory:false, ignore cleanup failures: true
19/01/12 23:17:11 INFO SQLHadoopMapReduceCommitProtocol: Using output committer class com.amazon.emr.committer.EmrOptimizedSparkSqlParquetOutputCommitter
19/01/12 23:17:11 INFO FileSystemOptimizedCommitter: Nothing to setup as successful task attempt outputs are written directly.```
How do i disbale EMR to not use its own optimized EmrOptimizedSparkSqlParquetOutputCommitter
--conf spark.hadoop.mapred.output.committer.class = ai.peritus.training.preprocess.PeritusS3PartitionedOutputFormat
--conf spark.hadoop.mapreduce.use.directfileoutputcommitter=false
--conf spark.hadoop.spark.sql.parquet.output.committer.class= com.netflix.bdp.s3.S3PartitionedOutputCommitter
--conf mapreduce.fileoutputcommitter.algorithm.version=1
【问题讨论】:
标签: apache-spark parquet