【问题标题】:Apache Spark : java.lang.OutOfMemoryError: Java Heap Space issueApache Spark:java.lang.OutOfMemoryError:Java 堆空间问题
【发布时间】: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


【解决方案1】:

如果使用df.persist()df.cache(),那么您也应该使用df.unpersist() 方法,还有sqlContext.clearCache() 可以清除所有内容。

【讨论】:

  • 好的.. 感谢您的回复。我们没有缓存任何东西。但我会尝试sqlContext.clearCache() 并在这里更新
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-14
相关资源
最近更新 更多