Hadoop 在配置单元脚本中设置mapred.child.java.opts将导致MR作业获得';死亡';马上

Hadoop 在配置单元脚本中设置mapred.child.java.opts将导致MR作业获得';死亡';马上,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,由于OutOfMemory和超出GC开销限制的错误,我一直有一些工作失败。为了对抗前者,我尝试设置SET mapred.child.java.opts=“-Xmx3G”在配置单元脚本**的开头 基本上,每当我将此选项添加到脚本中时,调度的MR作业(对于脚本中的几个查询中的第一个查询)都会立即“终止” 有没有关于如何纠正这种情况的想法?是否有任何其他参数需要与最大堆空间一起修改(例如,io.sort.mb)?非常感谢您的任何帮助 FWIW,我正在使用hive-0.7.0和hadoop-0.20.2

由于OutOfMemory和超出GC开销限制的错误,我一直有一些工作失败。为了对抗前者,我尝试设置
SET mapred.child.java.opts=“-Xmx3G”在配置单元脚本**的开头

基本上,每当我将此选项添加到脚本中时,调度的MR作业(对于脚本中的几个查询中的第一个查询)都会立即“终止”

有没有关于如何纠正这种情况的想法?是否有任何其他参数需要与最大堆空间一起修改(例如,
io.sort.mb
)?非常感谢您的任何帮助

FWIW,我正在使用
hive-0.7.0
hadoop-0.20.2
。集群中最大堆大小的默认设置是1200M

蒂亚

**-尝试过的其他一些替代方案(具有滑稽效果,但结果没有明显变化):

  • SET mapred.child.java.opts=“-Xmx3G”

  • SET mapred.child.java.opts=“-server-Xmx3072M”

  • 设置mapred.map.child.java.opts=“-server-Xmx3072M”

    设置mapred.reduce.child.java.opts=“-server-Xmx3072M”

  • SET mapred.child.java.opts=“-Xmx2G”

更新1:这可能与设置堆大小无关。以任何方式修补mapred.child.java.opts都会导致相同的结果。例如,将其设置为,
SET mapred.child.java.opts=“-XX:+UseConMarkSweepGC”的结果与乔布斯先生马上被杀是一样的。甚至在脚本中将其显式设置为“集群默认值”也会导致这种情况


更新2:添加了JobTracker日志的
grep
粘贴箱。

另外两个保护可以限制任务内存的使用。两者都是为管理员设计的,用于强制QoS,因此如果您不是集群上的管理员之一,则可能无法更改它们

第一个是ulimit,它可以直接在节点操作系统中设置,也可以通过设置


第二个是一对集群范围的属性,通过比较作业设置
mapred.job.map.memory.mb
mapred.job.reduce.memory.mb
与集群范围的限制来强制执行内存使用。

认为这最终将是一件琐碎/空洞的事情

设置
mapred.child.java.opts从而:

SET mapred.child.java.opts=“-Xmx4G-XX:+UseConcMarkSweepGC”

这是不能接受的。但这似乎很顺利:

SET mapred.child.java.opts=-Xmx4G-XX:+UseConcMarkSweepGC(减去双引号)


唉。拥有更好的调试选项/错误消息会很好。

我开始认为这与堆大小设置没有任何关系。以任何方式修补
mapred.child.java.opts都会导致同样的结果。例如,将其设置为,
SET mapred.child.java.opts=“-XX:+UseConMarkSweepGC”的结果与乔布斯先生马上被杀是一样的。或者甚至在脚本中将其显式设置为“集群默认值”都会导致这种情况。嗯,您能够访问作业跟踪器日志吗?这里可能有更多的失败细节,我一直在努力寻找。我看到的唯一线索是试图安排数据本地的任务。我没有看到任何任务跟踪器日志,因为:a)作业跟踪器日志似乎只报告某些节点有“拆分”。但是,它不报告计划任何任务。b) 检查所有TT节点(被列为具有拆分)上的“尝试”日志不会产生任何结果。我感觉有一些蜂巢巫术在进行——甚至在查询执行开始之前,特别是因为作业被“杀死”,而不一定是“失败”。但是,我在
hive.log
中没有看到任何内容。添加了JobTracker日志的
grep
粘贴箱。看起来只是在设置选项值时使用了双引号导致了问题。唉。我补充了答案中的细节。谢谢你的帮助,顺便说一句。非常感谢。