运行WordCount虚拟内存溢出

2018-11-27  本文已影响0人  JansonYan

具体报错如下:

Container is running beyond virtual memory limits. Current usage: 100.3 MB of 1 GB physical memory used; 2.4 GB of 2.1 GB virtual memory used. Killing container.

分析:

该错误是YARN的虚拟内存计算方式导致,上例中用户程序申请的内存为1Gb,YARN根据此值乘以一个比例(默认为2.1)得出申请的虚拟内存的 值,当YARN计算的用户程序所需虚拟内存值大于计算出来的值时,就会报出以上错误。

解决方法:

1、如果是physical memory超了

修改yarn-site-xml对job的内存限制

<property>

  <name>yarn.scheduler.minimum-allocation-mb</name>

  <value>1024</value>

</property>

2、如果是virtual memory超了

修改nodemanager的yarn-site.xml配置文件,添加如下:

<property>

        <name>yarn.nodemanager.vmem-check-enabled</name> 

        <value>false</value> 

    </property>

    <property> 

        <name>yarn.nodemanager.vmem-pmem-ratio</name> 

        <value>3</value> 

        <description>将比例值由2.1改为3</description>

    </property>

参考文章:

https://blog.csdn.net/u012551524/article/details/80544629

https://blog.csdn.net/dd390738878/article/details/9785679

上一篇 下一篇

猜你喜欢

热点阅读