首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >emr-5.20.0将2.4.0写入s3需要花费太多时间

emr-5.20.0将2.4.0写入s3需要花费太多时间
EN

Stack Overflow用户
提问于 2019-01-12 23:57:21
回答 1查看 3.3K关注 0票数 1

我正在使用:

  • emr-5.20.0
  • Hadoop 2.8.5
  • 火花2.4.0

我的星火作业之一是将拼花数据写到s3上,这似乎是在20-30分钟内完成的,90%的处理,但在最后5-10%的时间里,要花两个小时才能完成。我读了很多论坛,并知道EMR正在使用优化的输出提交器,但它仍然需要太多的时间。我正在尝试配置自定义提交器,但是作业总是使用EmrOptimizedSparkSqlParquetOutputCommitter,我如何禁用它并添加自定义委员会.以下是日志:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2019-01-25 19:32:13

我来自EMR团队,所以我对这个特性有一点偏见,尽管有一些证据表明它对其他客户很有效。参见,例如,https://stackoverflow.com/a/54350777/2205987

不过,我会先回答你问的问题。为了使用自己的提交器类,需要设置spark.sql.parquet.output.committer.class属性。在上面的示例中,您错误地使用了spark.hadoop.spark.sql.parquet.output.committer.class

尽管如此,我认为我们首先应该确认您的应用程序甚至在一开始就使用了EMRFS S3优化提交器。如果在作业结束时处于缓慢状态,则可能没有实际使用优化的提交器,或者您的作业中存在其他导致缓慢的原因,例如导致非常长时间运行的任务的数据倾斜。

在某些情况下,即使启用了EMRFS S3优化提交器,也不会实际使用它。它将有助于了解更多关于应用程序的信息,例如一些示例代码。此外,如果您能够提供一个示例集群id (j- are 123),它将帮助某人从EMR调试您的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54164974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档