gpt4 book ai didi

hadoop - AM 容器运行超出虚拟内存限制

转载 作者:可可西里 更新时间:2023-11-01 14:15:38 31 4
gpt4 key购买 nike

我正在玩分布式 shell 应用程序 (hadoop-2.0.0-cdh4.1.2)。这是我目前收到的错误。

13/01/01 17:09:09 INFO distributedshell.Client: Got application report from ASM for, appId=5, clientToken=null, appDiagnostics=Application application_1357039792045_0005 failed 1 times due to AM Container for appattempt_1357039792045_0005_000001 exited with  exitCode: 143 due to: Container [pid=24845,containerID=container_1357039792045_0005_01_000001] is running beyond virtual memory limits. Current usage: 77.8mb of 512.0mb physical memory used; 1.1gb of 1.0gb virtual memory used. Killing container.
Dump of the process-tree for container_1357039792045_0005_01_000001 :
|- PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME(MILLIS) SYSTEM_TIME(MILLIS) VMEM_USAGE(BYTES) RSSMEM_USAGE(PAGES) FULL_CMD_LINE
|- 24849 24845 24845 24845 (java) 165 12 1048494080 19590 /usr/java/bin/java -Xmx512m org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster --container_memory 128 --num_containers 1 --priority 0 --shell_command ping --shell_args localhost --debug
|- 24845 23394 24845 24845 (bash) 0 0 108654592 315 /bin/bash -c /usr/java/bin/java -Xmx512m org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster --container_memory 128 --num_containers 1 --priority 0 --shell_command ping --shell_args localhost --debug 1>/tmp/logs/application_1357039792045_0005/container_1357039792045_0005_01_000001/AppMaster.stdout 2>/tmp/logs/application_1357039792045_0005/container_1357039792045_0005_01_000001/AppMaster.stderr

有趣的是,设置似乎没有问题,因为一个简单的 lsuname 命令成功完成并且输出在 container2 中可用标准输出。

关于设置,yarn.nodenager.vmem-pmem-ratio3,可用的总物理内存是2GB,我认为这已经足够了,例如运行。

对于相关命令,“ping localhost”生成了两个回复,从 containerlogs/container_1357039792045_0005_01_000002/721917/stdout/?start=-4096 可以看出。

那么,可能是什么问题?

最佳答案

从错误消息中,您可以看到您使用的虚拟内存超过了当前 1.0gb 的限制。这可以通过两种方式解决:

禁用虚拟内存限制检查

YARN 将简单地忽略该限制;为此,请将其添加到您的 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>

此设置的默认值为 true

增加虚拟内存与物理内存的比率

在您的 yarn-site.xml 中将其更改为比当前设置更高的值

<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>5</value>
<description>Ratio between virtual memory to physical memory when setting memory limits for containers. Container allocations are expressed in terms of physical memory, and virtual memory usage is allowed to exceed this allocation by this ratio.</description>
</property>

默认为2.1

您还可以增加分配给容器的物理内存量。

确保在更改配置后不要忘记重启 yarn。

关于hadoop - AM 容器运行超出虚拟内存限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14110428/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com