Spark执行者状态退出与被杀死之间有什么区别?

时间:2016-01-18 14:13:14

标签: apache-spark

我正在使用spark 1.2.1。 当我运行spark工作时有时我会将执行器状态“退出”并且有时“被杀”,在这两种情况下工作都成功完成并且我调用 SparkContext.stop() ......

我无法理解这些州的含义。

enter image description here

enter image description here

Spark执行者状态Exited vs Killed之间有什么区别?

1 个答案:

答案 0 :(得分:3)

已退出 - 这表示执行程序已完成处理,并且存在且没有任何错误或异常。

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

同样作为一种好习惯,我们应该在Job结束时调用SparkContext.stop()方法。虽然这不能确保您始终具有“退出”状态,但它肯定会确保执行清理并取消分配资源。