美文网首页
运行WordCount虚拟内存溢出

运行WordCount虚拟内存溢出

作者: JansonYan | 来源:发表于2018-11-27 21:52 被阅读0次

具体报错如下:

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

相关文章

网友评论

      本文标题:运行WordCount虚拟内存溢出

      本文链接:https://www.haomeiwen.com/subject/ptanqqtx.html