gpt4 book ai didi

fetcher#1 随机播放中的 Hadoop 错误

转载 作者:可可西里 更新时间:2023-11-01 14:16:54 26 4
gpt4 key购买 nike

我在 hadoop 中运行解析作业,源是一个 11GB 的 map 文件,其中包含大约 900,000 条二进制记录,每条记录代表一个 HTML 文件, map 提取链接并将它们写入上下文。我没有为这项工作编写 reducer 。

  • 当我在较小的文件(大约 5GB 和大约 500,000 条记录)上运行它时,它工作正常。
  • 这是一个单机集群
  • 输出约1亿条记录,TEXT
  • 在计划的 200 个 map task 中有 11 个任务失败。
  • 我正在使用 Hadoop 0.22.0 运行

我收到以下错误:

org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in fetcher#1 at org.apache.hadoop.mapreduce.task.reduce.Shuffle.run(Shuffle.java:124) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:362) at org.apache.hadoop.mapred.Child$4.run(Child.java:223) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1153) at org.apache.hadoop.mapred.Child.main(Child.java:217) Caused by: java.lang.OutOfMemoryError: Java heap space at org.apache.hadoop.io.BoundedByteArrayOutputStream.(BoundedByteArrayOutputStream.java:58) at org.apache.hadoop.io.BoundedByteArrayOutputStream.(BoundedByteArrayOutputStream.java:45) at org.apache.hadoop.mapreduce.task.reduce.MapOutput.(MapOutput.java:104) at org.apache.hadoop.mapreduce.task.reduce.MergeManager.unconditionalReserve(MergeManager.java:267)

这是我的 mapreduce-site.xml:

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>Hadp01:8012</value>
<description>The host and port that the MapReduce job tracker runs
at. If "local", then jobs are run in-process as a single map
and reduce task.
</description>
</property>
<property>
<name>mapred.local.dir</name>
<value>/BigData1/MapReduce,/BigData2/MapReduce</value>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx1536m</value>
</property>
<property>
<name>dfs.datanode.max.xcievers</name>
<value>2048</value>
</property>
<property>
<name>mapreduce.task.io.sort.mb</name>
<value>300</value>
</property>
<property>
<name>io.sort.mb</name>
<value>300</value>
</property>
<property>
<name>mapreduce.task.io.sort.factor</name>
<value>100</value>
</property>
<property>
<name>io.sort.factor</name>
<value>100</value>
</property>
<property>
<name>tasktracker.http.threads</name>
<value>80</value>
</property>
</configuration>

有人知道怎么解决吗?谢谢!

最佳答案

默认由mapreduce.reduce.shuffle.memory.limit.percent引起的错误

mapreduce.reduce.shuffle.memory.limit.percent=0.25

为了解决这个问题,我限制了我的 reduce 的 shuffle 内存使用: hive :

set mapreduce.reduce.shuffle.memory.limit.percent=0.15;

MapReduce:

job.getConfiguration().setStrings("mapreduce.reduce.shuffle.memory.limit.percent", "0.15");

shuffle error solution

关于fetcher#1 随机播放中的 Hadoop 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19823686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com