1. 取消虚拟内存的检查(不建议):yarn-site.xml
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
<description>Whether virtual memory limits will be enforced for containers.</description>
</property>
除了虚拟内存超了,也有可能是物理内存超了,同样也可以设置物理内存的检查为 yarn.nodemanager.pmem-check-enabled :false
个人认为这种办法并不太好,如果程序有内存泄漏等问题,取消这个检查,可能会导致集群崩溃
2 修改配置 优先考虑 mapred-site.xml:mapreduce.map.memory.mb
mapreduce.reduce.memory.mb
yarn.scheduler.minimum-allocation-mb
3 修改配置 yarn-site.xml : yarn.nodemanager.vmem-pmem-ratio
4. 如果任务所占用的内存太过离谱,更多考虑的应该是程序是否有内存泄漏,是否存在数据倾斜等,优先程序解决此类问题
转载 :https://blog.csdn.net/Abysscarry/article/details/80331311