导致Hadoop映射中出现随机播放错误的大文件减少

时间:2018-10-08 18:18:18

标签: java hadoop mapreduce qubole

当我尝试处理大小大于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

1 个答案:

答案 0 :(得分:0)

增加减速器的并行性。可以通过设置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堆大小,请阅读this