如果我使Spark Driver崩溃怎么办。执行者会清楚吗?

时间:2018-08-13 09:02:06

标签: apache-spark

假设我在客户端模式下正在运行Spark驱动程序。如果我命令'kill -9 xxx'并且xxx是驱动程序的进程号,将会发生什么? 是否会收集指派给驾驶员的遗嘱执行人和工人。如果可以,怎么办?

1 个答案:

答案 0 :(得分:1)

spark-submit脚本提供了最直接的方法来将已编译的Spark应用程序提交到集群。对于独立集群,Spark当前支持两种部署模式。在客户端模式下,驱动程序以与提交应用程序的客户端相同的过程启动。但是,在群集模式下,驱动程序是从群集内的一个Worker进程中启动的,并且客户端进程在履行其提交应用程序的职责而无需等待应用程序完成时立即退出。

如果您的应用程序是通过Spark提交启动的,则应用程序jar将自动分发到所有辅助节点。如果您想终止某个应用程序,可以通过以下方式实现:

./bin/spark-class org.apache.spark.deploy.Client kill <master url> <driver ID>

您可以通过独立的Master Web UI(位于http://:8080)找到驱动程序ID。

Spark批处理应用程序状态和驱动程序状态被协调,并通过每个Spark批处理应用程序过程与Spark主控器一起通信。如果在驱动程序处于RUNNING状态时直接发出OS级kill命令,则应用程序和驱动程序进程将立即终止,而无需与Spark master进行通信。然后,应用程序状态为“完成”,驱动程序状态为“失败”。

杀死驱动程序将使YARN在yarn-cluster模式下重新启动它。您想取消提交火花的过程。