running beyond virtual memory limits. Current usage: 1.2 GB of 1 GB physical memory used---yarn 参数研究

6 篇文章 0 订阅
4 篇文章 0 订阅

mr报错

Container [pid=28920,containerID=container_1389136889967_0001_01_000121] is running beyond virtual memory limits. Current usage: 1.2 GB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing container

解决方法

  • physical memory used; 2.2 GB of 2.1 GB 这里说的map或者reduce的container的物理内存不够了,所以要加map和reduce加大内存。cdh直接搜索配置即可添加。
<property>
    <name>mapreduce.map.memory.mb</name>
    <value>4096</value>
  </property>
  <property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>4096</value>
  </property>
  • 往往呢光加这个参数不好使(因为你设置的不够大),还需要再改一下配置(取消虚拟内存的检查)
    yarn.nodemanager.pmem-check-enabled :false

其中 yarn.nodemanager.vmem-pmem-ratio 是 虚拟内存和物理内存比例,在yarn-site.xml中设置,默认是2.1,适当增大。
很明显,container占用了2.8G的虚拟内存,但是分配给container的却只有2.1GB。所以kill掉了这个container
其实不太推荐yarn.nodemanager.pmem-check-enabled设置为false,因为往往会使用虚拟内存导致任务变慢。你可以单纯的增大map和reduce的内存,这样就会间接增大虚拟内存(因为他们之际有比例关系2.1啊)

 <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>

yarn 参数详解2
YARN的Memory和CPU调优配置详解–官网翻译
yarn参数3

mapreduce.map.java.opts 是分给map任务的jvm进程的heap大小,所以他要小于container的大小 一般为 0.8左右

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值