我正在运行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。我使用“top”和每1秒使用"ps -o vsz=${pid}"
的脚本验证了主机上作业的内存使用情况。
有人可以帮我理解/调试/修复这个问题。
答案 0 :(得分:0)
这个问题可能与我在CDH版本here上发现的这个错误有关:
来自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