yarn is running beyond physical memory limits 问题解决
2016-03-22 11:47
405 查看
yarn is running beyond physical memory limits 问题解决
Diagnostic Messages for this Task:Container [pid=7830,containerID=container_1397098636321_27548_01_000297] is running beyond physical memory limits. Current usage: 2.1 GB of 2 GB physical memory used; 2.7
GB of 4.2 GB virtual memory used. Killing container.
Dump of the process-tree for container_1397098636321_27548_01_000297 :
|- PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME(MILLIS) SYSTEM_TIME(MILLIS) VMEM_USAGE(BYTES) RSSMEM_USAGE(PAGES) FULL_CMD_LINE
|- 7830 7816 7830 7830 (java) 2547 390 2924818432 539150 /export/servers/jdk1.6.0_25/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Xmx2224m -Djava.io.tmpdir=/data2/nm/local/usercache/admin/appcache/application_1397098636321_27548/container_1397098636321_27548_01_000297/tmp
-Dlog4j.configuration=container-log4j.properties......
检查yarn-site-xml job内存限制
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
</property>
解决方法:
1.增加yarn.scheduler.minimum-allocation-mb内存上限。
2.--hiveconf mapred.child.java.opts=-Xmx????m 一定要小于yarn.scheduler.minimum-allocation-mb
如果是vm超了,如下:调整yarn.nodemanager.vmem-pmem-ratio
查看log没有明显的ERROR,但存在类似以下描述的日志
2012-05-16 13:08:20,876 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Sending out status for container: container_id {, app_attempt_id {, application_id {, id: 18, cluster_timestamp: 1337134318909, }, attemptId: 1, }, id: 6, }, state:
C_COMPLETE, diagnostics: "Container [pid=15641,containerID=container_1337134318909_0018_01_000006] is running beyond virtual memory limits. Current usage: 32.1mb of 1.0gb physical memory used; 6.2gb
of 2.1gb virtual memory used. Killing container.\nDump of the process-tree for container_1337134318909_0018_01_000006
:\n\t|- PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME(MILLIS) SYSTEM_TIME(MILLIS) VMEM_USAGE(BYTES) RSSMEM_USAGE(PAGES) FULL_CMD_LINE\n\t|- 15641 26354 15641 15641 (java) 36 2 6686339072 8207 /home/zhouchen.zm/jdk1.6.0_23/bin/java
原因:
该错误是YARN的虚拟内存计算方式导致,上例中用户程序申请的内存为1Gb,YARN根据此值乘以一个比例(默认为2.1)得出申请的虚拟内存的值,当YARN计算的用户程序所需虚拟内存值大于计算出来的值时,就会报出以上错误。调节比例值可以解决该问题。具体参数为:yarn-site.xml中的yarn.nodemanager.vmem-pmem-ratio
原文出自:/article/11633798.html
相关文章推荐
- SQL SERVER 2008 同表同列做差
- Spring Security(07)——缓存UserDetails
- .NET DateTime 显示格式
- 如何搭建SVN服务器,详细安装步骤。
- 详解如何用HTML5 Canvas API控制图片的缩放变换
- Dll注入技术之输入法注入
- 配置属于我自己的专属IDE工具VIM
- failed: dlopen failed: cannot locate symbol "rand" referenced by
- multiple build commands for output file
- 利用typedef定义函数指针
- Mysql事务使用总结
- Android使listview(GridView) 获取焦点时,选中上次失去焦点时的item,而不是就近的item
- (未完占坑)笔记:flask用户认证
- 烟草公司基于BPM的IT一体化变革
- 0320 关于构建之法前三章的读后感
- 「转」xtrabackup新版详细说明
- 通过代码修改视图
- Android ZXing 解析
- debian apt /etc/apt/sources.list
- 发布App Store提交审核遇到的问题