当前位置: 首页 > 知识库问答 >
问题:

Spark作业抛出“java.lang.OutOfMemoryError:超出GC开销限制”

宇文元明
2023-03-14

我有一个Spark作业抛出“java.lang.OutOfMemoryError:GC开销限制超出”。

作业正在尝试处理4.5g的文件。

我尝试了以下spark配置

--num-executors 6  --executor-memory 6G --executor-cores 6 --driver-memory 3G 

共有1个答案

狄旻
2023-03-14

唯一的解决方案是微调配置

根据我的经验,我可以对OOM说以下几点:

  • 仅当您要多次使用RDD时才缓存RDD
    null
 类似资料:
  • 问题内容: 我在一个程序中创建了这个错误,该程序创建了几个(数十万)HashMap对象,每个对象都有几个(15-20)文本条目。这些字符串必须全部收集(不分解成较小的数量),然后再提交给数据库。 根据Sun的说法,该错误发生“如果在垃圾回收上花费了太多时间:如果在垃圾回收上花费了总时间的98%以上,而回收不到2%的堆,则将引发OutOfMemoryError。 ”。 显然,可以使用命令行将参数传递

  • 我正在IntelliJ Idea Ultimate Edition 2020.2.2上运行Grails 2.5.0。它可以很好地编译和构建代码,但它会不断抛出“java.lang.OutOfMemoryError:超出GC开销限制”错误(整个错误都是复制并粘贴在最后)。以下是我在研究这个错误的基础上尝试的东西: 1)增加构建进程堆大小(在2G、4G和6G下尝试)https://intellij-s

  • 问题内容: 我执行JUnit测试时收到以下错误消息: 我知道是什么OutOfMemoryError,但是GC开销限制是什么意思?我该如何解决? 问题答案: 该消息表示由于某种原因,垃圾收集器占用了过多的时间(默认情况下为该进程所有CPU时间的98%),并且每次运行时恢复的内存很少(默认为堆的2%)。 这实际上意味着你的程序停止任何进展,并且一直在忙于仅运行垃圾回收。 为了防止你的应用程序浪费CPU

  • 我正在尝试运行一个使用Gatling工具中的提要方法的负载测试。目前,当我们使用一个大小约为3.5GB的文件,其中包含600000条记录时,Gatling失败,例外情况如下:模拟LoadTest模拟开始... 线程“main”java中出现异常。lang.OutOfMemoryError:超过java的GC开销限制。util。数组。java上的copyOf(Arrays.java:2367)。la

  • 使用当我尝试构建我的项目时,这种错误越来越多: 错误:任务“:app:CompiledEbugJavaWithJavac”执行失败。OutofMemoryError:超出GC开销限制 有什么办法解决这个问题吗?

  • 我正在尝试预处理一个大的txt文件(10G),并将其存储在二进制文件中以备将来使用。当代码运行时,速度会减慢,并以 异常线程"main"java.lang.OutOfMemoryError: GC开销限制超过 输入文件具有以下结构 这是我正在使用的代码: 基本上,它通过in文件并将数据存储到对象HMbicnt(这是一个哈希映射)。一旦在第二列中遇到新值,它应该将对象写入输出文件,释放内存并继续。