Yarn 内存管理

项目场景:Cloudera Oozie执行Shell脚本

使用Oozie作为调度器执行每日计算任务


问题描述:

 在执行是出现Yarn内存超限

Container [pid=xxx,containerID=container_xxx] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used; 7.1 GB of 2.1 GB virtual memory used. Killing container. Dump of the process-tree for container_xxx

原因分析:

内存超限:

申请内存超过最大限制内存!


解决方案:

通过Baidu搜索发现大部分都是让增大限制使用内存

将这两个配置增大:

AM1: mapreduce.map.memory.mb

 

AM2: mapreduce.reduce.memory.mb

但是在资源不是那么充足的情况下无法将其增大,增大也不能彻底解决这个问题。

注意:原因是申请内存>最大限制使用内存

那么需要配合使用map reduce的申请内存:

mapreduce.map.java.opts:AM1 * 0.8

mapreduce.reduce.java.opts:AM2 * 0.8

 

参考:

https://stackoverflow.com/questions/21005643/container-is-running-beyond-memory-limits

内存使用需要和核心数进行匹配

 

Configuration File

Configuration Setting

Value Calculation

yarn-site.xml

yarn.nodemanager.resource.memory-mb

= Containers * RAM-per-Container

yarn-site.xml

yarn.scheduler.minimum-allocation-mb

= RAM-per-Container

yarn-site.xml

yarn.scheduler.maximum-allocation-mb

= containers * RAM-per-Container

mapred-site.xml

mapreduce.map.memory.mb

= RAM-per-Container

mapred-site.xml

mapreduce.reduce.memory.mb

= 2 * RAM-per-Container

mapred-site.xml

mapreduce.map.java.opts

= 0.8 * RAM-per-Container

mapred-site.xml

mapreduce.reduce.java.opts

= 0.8 * 2 * RAM-per-Container

yarn-site.xml (check)

yarn.app.mapreduce.am.resource.mb

= 2 * RAM-per-Container

yarn-site.xml (check)

yarn.app.mapreduce.am.command-opts

= 0.8 * 2 * RAM-per-Container

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值