【发布时间】:2020-10-07 22:38:45
【问题描述】:
当我每 2 次运行相同的 spark 程序时,我遇到了 java.lang.OutOfMemoryError: Java Heap Space 问题。
这是一个场景:
当我第一次执行spark-submit 并运行 spark 程序时,它给了我正确的输出并且一切都很好。当我再次执行相同的spark-submit 时,它会抛出java.lang.OutOfMemoryError: Java Heap Space 异常。
什么时候再次起作用?
如果我在通过执行 -/proc/sys/vm/drop_caches 清除 linux 缓存后运行相同的 spark-submit,它会再次成功运行一次。
我尝试设置所有可能的 spark 配置,例如 memoryOverhead、drive-memory、executor-memory 等。
知道这里发生了什么吗?这真的是 spark 代码的问题,还是由于某些 linux 机器设置或集群配置方式而发生的?
谢谢。
【问题讨论】:
-
应该主要取决于JRE的版本和实现
-
我相信它与底层 JVM 设置有关。资源应该在 spark 作业终止后清理。
-
@QuickSilver - 谢谢。我们应该使用哪个 JRE 版本/实现?你能用一些数字更清楚地说明吗?这将有很大帮助
-
@Constantine - 感谢您的回复。当我们说 JVM 设置时.. 我们应该在哪里进行更改 & 你能告诉我们需要配置哪个确切的属性来实现这一点 -
resources should be cleaned up after spark job dies
标签: java apache-spark out-of-memory java-heap