java大文件导致hadoop map reduce中的乱序错误

jfewjypa  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(349)

当我尝试处理大文件(如大小>35gb的文件)时,我看到了以下错误,但当我尝试较小的文件(如大小<10gb的文件)时,错误不会发生。

App > Error: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in fetcher#30

App > at org.apache.hadoop.mapreduce.task.reduce.Shuffle.run(Shuffle.java:134)

App > at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:376)

App > at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:165)

App > at java.security.AccessController.doPrivileged(Native Method)

App > at javax.security.auth.Subject.doAs(Subject.java:422)

App > at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1635)

App > at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:160)

App > Caused by: java.io.IOException: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.

这项工作仍然在qubole下完成,因为我认为qubole会重试reduce步骤。
但我想知道是否有这样的设置,我可以避免所有的错误,以便减少作业不必重试。

App > Failed reduce tasks=54
bpsygsoo

bpsygsoo1#

增加减速器平行度。可以通过设置mapreduce.job.reduces配置属性来完成。如果您是这样运行java应用程序:

hadoop jar -Dmapreduce.job.maps=100 -Dmapreduce.job.reduces=200 your_jar.jar ...

在Hive中,可以使用 hive.exec.reducers.bytes.per.reducer 财产。
您还可以尝试增加容器java堆的大小,请阅读以下内容

相关问题