容器使用超过了虚拟内存的限制大小,该容器被杀死,导致作业提交失败

is running beyond virtual memory limits. Current usage: 53.7 MB of 1 GB physical memory used; 4.4 GB of 2.1 GB virtual memory used. Killing container.
容器使用超过了虚拟内存的限制大小,该容器被杀死,导致作业提交失败

physical memory used
由于使用了默认虚拟内存率(也就是2.1倍),所以对于Map Task和Reduce Task总的虚拟内存为都为1G*2.1=2.1G。而应用的虚拟内存4.4G超过了这个数值,故报错 

解决方案:在启动Yarn是调节虚拟内存率或者应用运行时调节内存大小。
解决思路参考
要解决这个异常,得熟悉yarn自身的虚拟内存管理规则,在Yarn平台中,CPU,内存,磁盘都被抽象成资源来自使用,管理资源的角色主要有Yarn Resource Manager (RM) 负责总的资源调度,然后每个节点上有Nodemanager 来监听守护资源,在具体到每一个应用上是通过Application Master (AM) container来给Map或Reduce任务来分配资源
具体的属性如下:

  1. yarn.nodemanager.resource.memory-mb
    可分配的物理内存总量,默认是8*1024MB。
  2. yarn.nodemanager.vmem-pmem-ratio
    每单位的物理内存总量对应的虚拟内存量,默认是2.1,表示每使用1MB的物理内存,最多可以使用2.1MB的虚拟内存总量。
    第二个属性,比率的控制影响着虚拟内存的使用,当yarn计算出来的虚拟内存,比在mapred-site.xml里的mapreduce.map.memory.mb或mapreduce.reduce.memory.mb2.1倍还要多时,就会发生上面截图中的异常,而默认的mapreduce.map.memory.mb或mapreduce.reduce.memory.mb得初始大小为1024M,然后根据异常中的yarn自身根据运行环境推算出来的虚拟内存来做比较,发现比1024*2.1</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

撸依天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值