问题
Hadoop环境中,执行MapReduce程序或者Hive 任务时候,任务执行失败,提示内存不足。
Container is running 337869312B beyond the VIRTUAL’ memory limit.Current usage:295.8 NB of 1 GB physical memoryused;2.4 GB of 2.1 GB virtual memory used. Killing container.”
解决
- 修改 mapred-site.xml文件
<property><name>mapreduce.map.memory.mb</name><value>4096</value></property><property><name>mapreduce.reduce.memory.mb</name><value>4096</value></property>
- 修改 yarn-site.xml文件
将yarn的memory-mb设置为虚拟机内存的75%,如:8192*0.75=6144
<property><name>yarn.nodemanager.resource.memory-mb</name><value>6144</value></property>
然后重启Hadoop。
参考 stackover beyond memmory , 文章中也包含其他方法。