我正在尝试配置Hadoop集群。默认配置工作正常,但资源消耗很差。例如,从站中CPU的总使用率略高于40%。我想更有效地使用集群,并查阅此页面:
docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0/bk_installing_manually_book/content/rpm-chap1-11.html
我有一个小集群(1个主服务器和5个从服务器),每个节点都有这个硬件:
SO是Ubuntu 14.04,Hadoop版本是2.5.0。
我尝试计算值,然后得到:
总可用RAM = 8192 - 2024 = 6168(系统为2Gb) MIN_CONTAINER_SIZE = 512(从上面链接中的表中提取) RAM-per-container = 771 - > MAX(MIN_CONTAINER_SIZE,(总可用RAM)/容器)) 容器数量:8 - > MIN(2 * CORE,总可用RAM / MIN_CONTAINER_SIZE)
Configuration File Configuration Setting Formula Value
yarn-site.xml yarn.nodemanager.resource.memory-mb = containers * ram-per-container 6168
yarn-site.xml yarn.scheduler.minimum-allocation-mb = ram-per-container 771
yarn-site.xml yarn.scheduler.maximum-allocation-mb = containers * ram-per-container 6168
mapred-site.xml mapreduce.map.memory.mb = ram-per-container 771
mapred-site.xml mapreduce.reduce.memory.mb = 2 * ram-per-container 1542
mapred-site.xml mapreduce.map.java.opts = 0.8 * ram-per-container 616.8
mapred-site.xml mapreduce.reduce.java.opts = 0.8 * 2 * ram-per-container 1233.6
yarn-site.xml (check) yarn.app.mapreduce.am.resource.mb = 2 * ram-per-container 1542
yarn-site.xml (check) yarn.app.mapreduce.am.command-opts = 0.8 * 2 * ram-per-container 1
233.6
这个配置,以及相同的一些变体,不起作用,我得到像这样的错误
14/12/09 17:17:34 INFO mapreduce.Job: Task Id : attempt_1418155570046_0004_m_000060_1, Status : FAILED
Container [pid=5808,containerID=container_1418155570046_0004_01_000081] is running beyond physical memory limits. Current usage: 827.2 MB of 771 MB physical memory used; 1.6 GB of 1.9 GB virtual memory used. Killing container.
Dump of the process-tree for container_1418155570046_0004_01_000081 :
|- PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME(MILLIS) SYSTEM_TIME(MILLIS) VMEM_USAGE(BYTES) RSSMEM_USAGE(PAGES) FULL_CMD_LINE
|- 5815 5808 5808 5808 (java) 580 27 1706360832 211455 /usr/lib/jvm/default-java/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Xmx1024M -Djava.io.tmpdir=/usr/local/hadoop/hadoop_store/tmp/nm-local-dir/usercache/hduser/appcache/application_1418155570046_0004/container_1418155570046_0004_01_000081/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/usr/local/hadoop/logs/userlogs/application_1418155570046_0004/container_1418155570046_0004_01_000081 -Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA org.apache.hadoop.mapred.YarnChild 10.4.1.103 57356 attempt_1418155570046_0004_m_000060_1 81
|- 5808 4341 5808 5808 (bash) 0 0 14008320 303 /bin/bash -c /usr/lib/jvm/default-java/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Xmx1024M -Djava.io.tmpdir=/usr/local/hadoop/hadoop_store/tmp/nm-local-dir/usercache/hduser/appcache/application_1418155570046_0004/container_1418155570046_0004_01_000081/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/usr/local/hadoop/logs/userlogs/application_1418155570046_0004/container_1418155570046_0004_01_000081 -Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA org.apache.hadoop.mapred.YarnChild 10.4.1.103 57356 attempt_1418155570046_0004_m_000060_1 81 1>/usr/local/hadoop/logs/userlogs/application_1418155570046_0004/container_1418155570046_0004_01_000081/stdout 2>/usr/local/hadoop/logs/userlogs/application_1418155570046_0004/container_1418155570046_0004_01_000081/stderr
Container killed on request. Exit code is 143
或者我也得到了Java Heaps错误。
默认配置相同的应用程序没有失败。
那是什么问题?
感谢您提前。