运行WordCount虚拟内存溢出

具体报错如下:

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容