利用搭建的hadoop集群计算wordcount时出现内存问题:
错误
mapreduce.Job: Task Id : attempt_1652009045286_0001_m_000000_2,
Status : FAILED
[2022-05-08 19:32:48.836]Container
[pid=20882,containerID=container_1652009045286_0001_01_000004]
is running 375372288B beyond the 'VIRTUAL' memory limit.
Current usage: 49.8 MB of 1 GB physical memory used;
2.4 GB of 2.1 GB virtual memory used. Killing container.
原因:是机器上运行的container尝试用更多的内存,但是被Nodemanager给中断了,所以需要配置所需内存大小
解决方法:
1、在/opt/module/hadoop-3.1.4/etc/hadoop/下的mapred-site.xml中添加如下配置:(其中的数字大小可以根据自己电脑的内存大小情况更改)
<property>
<name>mapreduce.map.memory.mb</name>
<value>1536</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx1024M</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>2048</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx2048M</value>
</property>
2、重启yarn进程即可。
在hadoop目录下的sbin中:
stop-yarn.sh
start-yarn.sh