引起原因:java.lang.OutOfMemoryError:超出GC开销限制

Aav*_*vik 1 hive heap-memory

你能帮我解决 GC 开销错误吗?

背景:这是一个pig脚本,通过HCATALOGUE从4个hive表加载数据。Hive 表位于序列文件中并按日期分区。加载数据大小约为。24TB。

此脚本已成功运行 16TB。

问题:尝试从配置单元读取数据时作业失败。未为此映射缩减提交应用程序 ID,甚至在提交应用程序 ID 之前就发生故障。因此,无法在 YARN 中找到日志。

我尝试将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。并且仍然得到相同的错误。

请问对此有什么帮助吗?

谢谢。

use*_*372 5

有两个配置,需要修改。

1.-XX:+UseConcMarkSweepGC = 使GC更频繁。

  1. -XX:-UseGCOverheadLimit = 停止容器被杀死,甚至等待更长的时间。

在 Hive 控制台中,只需启动它,你就可以开始了。

蜂巢>SET mapred.child.java.opts=-Xmx4G -XX:+UseConcMarkSweepGC -XX:-UseGCOverheadLimit;