【问题标题】:Why am I getting out of memory errors only after several runs of my Spark Application?为什么我的 Spark 应用程序运行几次后才会出现内存不足错误?
【发布时间】:2018-05-11 06:55:48
【问题描述】:

在启动新的 EMR 集群后,我成功运行了两次 spark 应用程序。在运行了几次不同的 Spark 应用程序后确实出现了内存不足的问题,我再次运行了第一个 Spark 应用程序并出现了内存不足的错误。

我将这一系列事件重复了 3 次,而且每次都会发生。会发生什么? Spark 不应该在运行之间释放所有内存吗?

【问题讨论】:

  • 如果没有更多关于您正在尝试做的事情的更多信息,以及关于内存不足错误的堆栈跟踪,很难弄清楚为什么。

标签: apache-spark memory memory-management garbage-collection out-of-memory


【解决方案1】:

spark 程序完成后,它会生成临时目录并保留在 temp 目录中,因此在运行多个 spark 应用程序后可能会出现内存不足的错误。有一些清理选项可以解决这个问题。

spark.worker.cleanup.enabled(默认值为假), spark.worker.cleanup.interval, spark.worker.cleanup.appDataTtl 有关这些的更多详细信息,请阅读此文档。

http://spark.apache.org/docs/latest/spark-standalone.html#cluster-launch-scripts

【讨论】:

  • 这将如何导致内存不足错误?我可以想象这更多的是磁盘空间问题。
  • 当这个临时目录占用更多内存然后它的创建内存不足问题...我建议清除这个临时目录然后尝试运行程序。
猜你喜欢
  • 1970-01-01
  • 2020-10-17
  • 1970-01-01
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-20
  • 2019-09-13
相关资源
最近更新 更多