欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java.lang.OutOfMemoryError: GC overhead limit exceeded

程序员文章站 2022-06-13 21:08:05
...

在spark1.6.0中运行代码,在log中出现如下错误提示:

java.lang.OutOfMemoryError: GC overhead limit exceeded

这个一般是因为在垃圾回收中占用了大量时间造成的。通常来说,当程序用98%的时间回收了不到2%的堆内存时导致的。通常是设置的堆内存太小,导致没有足够的内存。

1.spark.executor.memory 调大参数扩大内存

2.也有可能是因为executor core数量太多,导致了多个core之间争夺gc时间以及资源(应该主要是内存资源),最后导致大部分的时间都花在了gc上。
有人在spark standalone集群模式运行出现这个问题,他直接编辑conf/spark-env.sh中的SPARK_EXECUTOR_CORES将数量从4设置到1,运行成功了。https://blog.csdn.net/sdujava2011/article/details/50988926

3.详细的看https://blog.csdn.net/zuolovefu/article/details/79024899

相关标签: spark