0

我正在运行 Hadoop 流式作业。此作业失败并出现错误:

"TaskTree [pid=13549,tipID=attempt_201202130706_121058_m_000000_0] is running beyond memory-limits. Current usage : 1667149824bytes. Limit : 1610612736bytes. Killing task."

对于此作业,mapred.job.map.memory.mb 设置为 1536。将其设置为有1536*2 = 3072帮助,但会导致 1 个映射任务使用 2 个插槽,这是不可取的。

当我在主机上运行此作业时,我发现它使用了 1.07 GB 的峰值内存,远小于 1536 MB。"ps -o vsz=${pid}"我使用“top”和每 1 秒使用一次的脚本验证了主机上作业的内存使用情况。

有人可以帮我理解/调试/解决这个问题。

4

1 回答 1

0

这个问题可能与我在 CDH 版本上发现的这个错误有关

来自 Hive 动态分区查询的 MapReduce 任务被终止。

问题:使用Hive脚本动态创建和填充分区表时,TaskTracker日志文件报如下错误:

TaskTree [pid=30275,tipID=attempt_201305041854_0350_m_000000_0] is running beyond memory-limits. Current usage : 1619562496bytes. Limit : 1610612736bytes. Killing task.

您必须关闭mapred-site.xml中的内存设置:

mapred.cluster.map.memory.mb = -1
mapred.cluster.reduce.memory.mb = -1
mapred.job.map.memory.mb = -1
mapred.job.reduce.memory.mb = -1
mapred.cluster.max.map.memory.mb = -1
mapred.cluster.max.reduce.memory.mb = -1
于 2014-04-04T09:04:59.707 回答