在运行mapred作业时,容器会根据请求被杀死

时间:2016-05-20 09:36:42

标签: hadoop mapreduce yarn cloudera hadoop2

我正在运行基准的tearasort程序,映射器阶段进展顺利。但是当谈到减速机阶段时,我会得到以下信息。最终工作失败

16/05/20 14:42:53 INFO mapreduce.Job: Task Id : attempt_1463557283514_0017_r_000008_1, Status : FAILED

Container [pid=54068,containerID=container_1463557283514_0017_01_018425] is running beyond physical memory limits. Current usage: 4.2 GB of 4 GB physical memory used; 8.1 GB of 8.4 GB virtual memory used. Killing container.

Dump of the process-tree for container_1463557283514_0017_01_018425 :
        |- PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME(MILLIS) SYSTEM_TIME(MILLIS) VMEM_USAGE(BYTES) RSSMEM_USAGE(PAGES) FULL_CMD_LINE
        |- 54068 54066 54068 54068 (bash) 0 0 115843072 362 /bin/bash -c /usr/java/jdk1.8.0_60/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN  -Xmx6144m -Djava.io.tmpdir=/u10/yarn/nm/usercache/username/appcache/application_1463557283514_0017/container_1463557283514_0017_01_018425/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/u04/yarn/container-logs/application_1463557283514_0017/container_1463557283514_0017_01_018425 -Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA org.apache.hadoop.mapred.YarnChild 1x.4x.3x.9x 47528 attempt_1463557283514_0017_r_000008_1 18425 1>/u04/yarn/container-logs/application_1463557283514_0017/container_1463557283514_0017_01_018425/stdout 2>/u04/yarn/container-logs/application_1463557283514_0017/container_1463557283514_0017_01_018425/stderr
        |- 54073 54068 54068 54068 (java) 5355 6080 8573480960 1103372 /usr/java/jdk1.8.0_60/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Xmx6144m -Djava.io.tmpdir=/u10/yarn/nm/usercache/username/appcache/application_1463557283514_0017/container_1463557283514_0017_01_018425/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/u04/yarn/container-logs/application_1463557283514_0017/container_1463557283514_0017_01_018425 -Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA org.apache.hadoop.mapred.YarnChild 1x.4x.3x.9x 47528 attempt_1463557283514_0017_r_000008_1 18425

Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143

enter image description here

2 个答案:

答案 0 :(得分:0)

我通过以下方式解决了这个问题

以前无论我做什么,如果我增加地图,减速器,资源管理器和容器内存,它使用的比我配置的更多。然后我终于改为cloudera默认java。我使用的是1.8.0_60。我在Manager中明确设置了它。因此,当我将此参数以及其他更改的参数更改为CM默认设置时,它开始工作

答案 1 :(得分:0)

我已经通过在yarn-site.xml中添加以下属性来解决了这个问题

<property>
   <name>yarn.nodemanager.vmem-check-enabled</name>
   <value>false</value>
   <description>Whether virtual memory limits will be enforced for containers</description>
</property>
<property>
   <name>yarn.nodemanager.vmem-pmem-ratio</name>
   <value>4</value>
   <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
</property>

添加后重新启动所有hadoop守护进程。