无论是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
感谢关注我的微信公众号(微信扫一扫):
以及我的微信视频号: