org.apache.hadoop.mapred.YarnChild: GC overhead limit

记录一次错误:

环境:CDH5.10 jdk8

hive query 时,报错org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.OutOfMemoryError: GC overhead limit exceeded
at org.apache.hadoop.io.Text.setCapacity(Text.java:268)
at org.apache.hadoop.io.Text.set(Text.java:224)
at org.apache.hadoop.io.Text.set(Text.java:214)

一般会有下面几种情况:
1.map/reduce的内存不足
2.client 的heap不足 client hive heap(一般是发生mapjoin时导致的)
3.opts(mapreduce.map/reduce.java.opts不足,但是堆内存必须小于memory的大小)

调大相应的参数即可解决。
如:

<property>
    <name>mapreduce.map.java.opts.max.heap</name>
    <value>983</value>
</property>
<property>
    <name>mapreduce.reduce.java.opts.max.heap</name>
    <value>983</value>
</property>

或者

set mapreduce.map.java.opts=-Xmx2g

备注:
1. mapreduce.map/reduce.memory.mb 默认是0,不是不限制memory的大小,而是 The amount of memory to request from the scheduler for each map task. If this is not specified or is non-positive, it is inferred from mapreduce.map.java.opts and mapreduce.job.heap.memory-mb.ratio. If java-opts are also not specified, we set it to 1024.
2. CDH mapreduce.map/reduce.java.opts.max.heap 默认是0,不是不限制,而是默认状态下的大小是依据mapreduce.map/reduce.memory.mb 大小
3. CDH有mapreduce.map.java.opts.max.heap而apache hadoop并没有这个参数,却有mapreduce.map.java.opts,
mapreduce.map.java.opts会覆盖掉
mapreduce.map.java.opts.max.heap

4.还会看到mapred.map/reduce.child.java.opts
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shengjk1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值