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

时间:2017-10-05 12:28:31

标签: 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。 仍然会得到同样的错误。

对此有任何帮助吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

有两种配置,需要更改。

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

  1. -XX:-UseGCOverheadLimit =停止容器被杀,甚至等待更长的时间。
  2. 在蜂巢控制台中,只需解雇一下,你应该好好去。

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