【问题标题】:What is the difference between Spark executor states Exited vs Killed?Spark 执行器状态 Exited 和 Killed 有什么区别?
【发布时间】:2016-01-19 17:30:24
【问题描述】:

我正在使用 spark 1.2.1。 当我运行 spark 作业时,有时我会得到执行程序状态“Exited”,有时会“Killed”,在这两种情况下,作业都成功完成,我调用 SparkContext.stop()...

我无法理解这些状态的含义。

Spark 执行器状态 Exited 和 Killed 有什么区别?

【问题讨论】:

  • 你在工作结束时调用 SparkContext.stop() 吗?
  • @Sumit- 是的,我调用了 SparkContext.stop()。

标签: apache-spark


【解决方案1】:

Exited - 表示Executor完成了处理,并且干净地存在,没有任何错误或异常。

Killed - 这意味着执行者被一个停止并要求杀死执行者的 Worker 杀死。这种情况可能是由于许多原因,例如某些用户驱动的操作,或者可能是您的执行程序完成了处理,但由于某种原因它不存在但工作人员正在退出,因此需要杀死执行程序。

同样作为一种好的做法,我们应该在 Job 结束时调用 SparkContext.stop() 方法。虽然这不能确保您始终处于“已退出”状态,但它肯定会确保执行清理并释放资源。

【讨论】:

  • @Sumit- 我在哪里可以看到“杀死”工人的原因是什么? worker的日志中没有错误...
  • Killed 并不意味着错误/异常。假设它类似于“kill -9 ”。您不会在日志中看到任何错误。
  • 所以没有办法知道工人为什么杀人?
  • 根据代码,它会生成一个InterruptedException,其中只记录了信息消息。见here
猜你喜欢
  • 2018-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多