GC 开销限制超出 Pig 中杀死的容器
GC overhead limit exceeded container killed in Pig
我正在 hadoop 2 集群中使用 YARN.All 在我们的开发环境中执行 13 table map join table join as LEFT OUTER with main table 。总数有 15 个加入。
由于大多数小 table 都小于 200-300 MB,所以我使用 USING 'replicated' 来执行脚本 code.It 执行得相当快,但超过 95- 就卡住了99% 。当我检查应用程序 url 时,2 个减速器失败并抛出错误“
GC 开销限制超过容器被 ApplicationMaster.Container 杀死 request.Exit 代码是 143 容器以非零退出代码 143".
退出
Other reducer failed with error 300 秒后超时容器被 ApplicationMaster.Container killed on request.Exit code is 143..
您需要通过设置 mapreduce.map.java.opts
和 mapreduce.map.memory.mb
来增加 YARN 容器的大小。在我的环境中,YARN 容器的最大尺寸是 32GB,所以我在启动流式 jar 或 oozie 时添加 -Dmapreduce.map.java.opts=-Xmx30000m
和 -Dmapreduce.map.memory.mb=32000
:
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx30000m</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>32000</value>
</property>
否则您需要摆脱地图连接。在 Hive 中,我通过 set auto.convert.join=FALSE;
您可以直接从您的猪中调整这些值。
在您的应用程序 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;
以上是适用于与您的数据集大小相似的数据集的属性。
我正在 hadoop 2 集群中使用 YARN.All 在我们的开发环境中执行 13 table map join table join as LEFT OUTER with main table 。总数有 15 个加入。
由于大多数小 table 都小于 200-300 MB,所以我使用 USING 'replicated' 来执行脚本 code.It 执行得相当快,但超过 95- 就卡住了99% 。当我检查应用程序 url 时,2 个减速器失败并抛出错误“ GC 开销限制超过容器被 ApplicationMaster.Container 杀死 request.Exit 代码是 143 容器以非零退出代码 143".
退出Other reducer failed with error 300 秒后超时容器被 ApplicationMaster.Container killed on request.Exit code is 143..
您需要通过设置 mapreduce.map.java.opts
和 mapreduce.map.memory.mb
来增加 YARN 容器的大小。在我的环境中,YARN 容器的最大尺寸是 32GB,所以我在启动流式 jar 或 oozie 时添加 -Dmapreduce.map.java.opts=-Xmx30000m
和 -Dmapreduce.map.memory.mb=32000
:
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx30000m</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>32000</value>
</property>
否则您需要摆脱地图连接。在 Hive 中,我通过 set auto.convert.join=FALSE;
您可以直接从您的猪中调整这些值。
在您的应用程序 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;
以上是适用于与您的数据集大小相似的数据集的属性。