原因:java.lang.outofmemoryerror:超出gc开销限制

u59ebvdq  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(361)

你能帮我解决gc开销错误吗。
背景:这是一个pig脚本,通过hcatalogue从4个配置单元表加载数据。配置单元表是按顺序文件并按日期分区的。加载数据大小约为24tb。
此脚本已成功运行16tb。
问题:尝试从配置单元读取数据时作业失败。没有为此Map提交应用程序id,甚至在提交应用程序id之前就发生了失败。所以,在纱里找不到原木。
我尝试将yarn.app.mapreduce.am.resource.mb修改为6g、mapreduce.map.memory.mb(6gb)、mapreduce.map.java.opts(6gb的0.8%)、mapreduce.reduce.memory.mb(8gb)和mapreduce.reduce.java.opts。仍然会得到同样的错误。
有什么帮助吗?
谢谢您。

kuhbmx9i

kuhbmx9i1#

有两种配置,需要更改。
1.-xx:+useConMarkSweepGC=使gc更频繁。
-xx:-usegoverheadlimit=停止要终止的容器,甚至等待更长的时间。
在 hive 控制台里,只要启动这个,你就可以走了。
Hive> SET mapred.child.java.opts=-Xmx4G -XX:+UseConcMarkSweepGC -XX:-UseGCOverheadLimit;

相关问题