[原创] 解决Map-Reduce job OOM(Java Heap Space)错误的一个方法:调整内存参数

无论是JAVA M-R job还是Pig M-R job发生Java Heap Space错误,一般情况下,我们要通过定位输入数据里的异常情况再想办法解决,例如,你在程序中对某个key做了GROUP操作,但输入数据中可能该key有大量记录,这就有可能导致job OOM。
这个问题取决于数据的具体情况,以及程序实现逻辑,所以这里就不提了。
本文要说的是:有时候程序实现/输入数据的问题“不是特别严重”,我们可以通过调整M-R job的内存参数来解决。

对JAVA M-R job,通过 -D 设置如下参数:

  -D "mapreduce.map.memory.mb=8192" \
  -D "mapreduce.reduce.memory.mb=8192" \
  -D "mapreduce.map.java.opts=-Xmx6144m" \
  -D "mapreduce.reduce.java.opts=-Xmx6144m" \

对Apache Pig M-R job,在Pig代码中添加如下语句:

SET mapreduce.map.memory.mb 8192;
SET mapreduce.reduce.memory.mb 8192;
SET mapreduce.map.java.opts -Xmx6144m;
SET mapreduce.reduce.java.opts -Xmx6144m;

其中,第1、2个参数需要你根据Hadoop集群的情况自行调整,第3、4个参数设置成第1、2个参数的70%~80%

文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤ 
转载需注明出处:codelast.com 
感谢关注我的微信公众号(微信扫一扫):
wechat qrcode of codelast
以及我的微信视频号:

发表评论