gc开销限制超过了pig中的容器杀死数

0md85ypi  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(391)

我正在hadoop2集群的开发环境中使用yarn执行13个表Map连接。所有表连接都作为主表的左外部。总共有15个连接。
由于大多数小表都小于200-300 MB,所以我使用“replicated”来执行脚本代码。它执行得很快,但超过了95-99%。当我检查应用程序url时,2个reducer未能抛出错误,原因是“gc开销限制超出了applicationmaster杀死的容器。请求时杀死的容器。退出代码是143容器退出,退出代码为非零143”。
其他缩减器失败,错误在applicationmaster终止容器300秒后超时。请求终止容器。退出代码为143。。

6ju8rftf

6ju8rftf1#

你可以直接在你的Pig里面调整值。
在应用程序url中,检查作业属性,并查看

mapreduce.map.memory.mb   
mapreduce.reduce.memory.mb
mapreduce.map.java.opts
mapreduce.reduce.java.opts
mapreduce.task.io.sort.mb

可以通过一次将属性的值提高512来开始调整。但是,不要将mapreduce.task.io.sort.mb的值提高到756以上。
要直接从pig更改值,请在pig的顶部,在任何代码之前添加以下属性:

set mapreduce.map.memory.mb    3072;
set mapreduce.reduce.memory.mb 3072;
set mapreduce.map.java.opts -Xmx2764m;
set mapreduce.reduce.java.opts -Xmx2764m;
set mapreduce.task.io.sort.mb 756;

上面的属性适用于与您的数据集大小相似的数据集。

pkbketx9

pkbketx92#

您需要通过设置 mapreduce.map.java.opts 以及 mapreduce.map.memory.mb . 在我的环境中,Yarn容器的最大尺寸是32gb,所以我添加了 -Dmapreduce.map.java.opts=-Xmx30000m 以及 -Dmapreduce.map.memory.mb=32000 启动流媒体jar或oozie时:

<property>
 <name>mapreduce.map.java.opts</name>
 <value>-Xmx30000m</value>
</property>
<property>
 <name>mapreduce.map.memory.mb</name>
 <value>32000</value>
</property>

否则你就得去掉mapjoin。在Hive里我靠 set auto.convert.join=FALSE;

相关问题