运行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的内存限制

  yarn.scheduler.minimum-allocation-mb

  1024

2、如果是virtual memory超了

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

        yarn.nodemanager.vmem-check-enabled 

        false 

   

     

        yarn.nodemanager.vmem-pmem-ratio 

        3 

        将比例值由2.1改为3

   


参考文章:

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

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

你可能感兴趣的:(运行WordCount虚拟内存溢出)