我的Hadoop集群中有7个节点[每个节点有8GB RAM和4VCPU],1个Namenode + 6个数据节点。
EDIT-1 @ ARNON:我按照链接,根据我的节点上的硬件配置疯狂计算,并在我的问题中添加了更新mapred-site和yarn-site.xml文件。仍然我的应用程序崩溃与相同的执行
我的mapreduce应用程序有34个输入拆分,块大小为128MB。
mapred-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 ndo上的容器数量?
答案 0 :(得分:0)
看来你正在为你的任务分配太多内存(即使没有查看所有配置)8GB RAM和每个地图任务8GB,所有这些都是堆 尝试使用较低的分配2Gb与1GB堆或类似的东西