Yarn 容器 lauch 失败异常和 mapred-site.xml 配置

Posted

技术标签:

【中文标题】Yarn 容器 lauch 失败异常和 mapred-site.xml 配置【英文标题】:Yarn container lauch failed exception and mapred-site.xml configuration 【发布时间】:2015-02-18 14:54:29 【问题描述】:

我的 Hadoop 集群中有 7 个节点 [每个节点有 8GB RAM 和 4VCPU],1 个 Namenode + 6 个数据节点。

EDIT-1@ARNON: 我按照链接,根据我节点上的硬件配置进行疯狂计算,并在我的问题中添加了更新 mapred-site 和 yarn-site.xml 文件。我的应用程序仍然因相同的执行而崩溃

我的 mapreduce 应用程序有 34 个输入拆分,块大小为 128MB。

ma​​pred-site.xml 具有以下属性:

mapreduce.framework.name  = yarn
mapred.child.java.opts    = -Xmx2048m
mapreduce.map.memory.mb   = 4096
mapreduce.map.java.opts   = -Xmx2048m

yarn-site.xml 具有以下属性:

yarn.resourcemanager.hostname        = hadoop-master
yarn.nodemanager.aux-services        = mapreduce_shuffle
yarn.nodemanager.resource.memory-mb  = 6144
yarn.scheduler.minimum-allocation-mb = 2048
yarn.scheduler.maximum-allocation-mb = 6144

EDIT-2@ARNON: 将 yarn.scheduler.minimum-allocation-mb 设置为 4096 会使所有地图任务处于挂起状态,并将其分配为 3072 崩溃,如下所示

Exception from container-launch: ExitCodeException exitCode=134: /bin/bash: line 1:  3876 Aborted  (core dumped) /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Xmx8192m -Djava.io.tmpdir=/tmp/hadoop-ubuntu/nm-local-dir/usercache/ubuntu/appcache/application_1424264025191_0002/container_1424264025191_0002_01_000011/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/home/ubuntu/hadoop/logs/userlogs/application_1424264025191_0002/container_1424264025191_0002_01_000011
-Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA org.apache.hadoop.mapred.YarnChild 192.168.0.12 50842 attempt_1424264025191_0002_m_000005_0 11 > 
/home/ubuntu/hadoop/logs/userlogs/application_1424264025191_0002/container_1424264025191_0002_01_000011/stdout 2> 
/home/ubuntu/hadoop/logs/userlogs/application_1424264025191_0002/container_1424264025191_0002_01_000011/stderr

如何避免这种情况?任何帮助表示赞赏

有没有限制hadoop ndoes上容器数量的选项?

【问题讨论】:

【参考方案1】:

似乎您为任务分配了太多内存(即使没有查看所有配置)每个映射任务 8GB RAM 和 8GB,所有这些都是堆 尝试使用较低的分配 2Gb 和 1GB 堆或类似的东西

【讨论】:

谢谢。更新参数如下:..... mapred.child.java.opts = -Xmx2048m mapreduce.map.memory.mb = 4096 mapreduce.map.java.opts = -Xmx2048m , MapReduce 在 0% 处崩溃...........来自容器启动的异常:ExitCodeException exitCode=134: /bin/bash: line 1: 10390 Aborted (core dumped) / usr/lib/jvm/java-7-openjdk-amd64/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Xmx2048m -Djava.io.tmpdir=/tmp/hadoop-ubuntu /nm-local- 谢谢。更新参数如下: ..... mapred.child.java.opts = -Xmx2048m mapreduce.map.memory.mb = 4096 mapreduce.map.java.opts = -Xmx2048m 当你使用 YARN 时,还有更多的参数需要设置——例如docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0/… 编辑了我上面的问题,仍然有问题,请参阅 EDIT-1 & EDIT-2

以上是关于Yarn 容器 lauch 失败异常和 mapred-site.xml 配置的主要内容,如果未能解决你的问题,请参考以下文章

Apache Hadoop YARN 中的“mapreduce.map.memory.mb”和“mapred.map.child.java.opts”之间有啥关系?

Hadoop之YARN的安装与测试

MapR 分发中使用的容器架构是啥?

MapReduce文件配置和测试

YARN安装和使用

Hadoop开启Yarn的日志监控功能