Spark - Standalone部署模式下,Application执行完了怎么办

在前面的文章中已经知道,Application既占用了Master的资源,也占用Worker里的Executor资源。当Application运行完后这些资源是都要释放的。
Spark - Standalone部署模式下,Application执行完了怎么办
文章图片

停止Executor Application首先会从内存中,拿出分配给当前Application的Executors信息,通过Executor的RpcEndpointRef,给每个Executor发送RPC请求,让他们停止Executor,Executor收到请求后,就会停止当前的Executor(字体红色标识)。
Spark - Standalone部署模式下,Application执行完了怎么办
文章图片

释放Driver Executor停止后,Driver就没用了,所以这里停止DriverEndpoint。
Spark - Standalone部署模式下,Application执行完了怎么办
文章图片

取消注册Application Application向Master发送请求,要求取消当前的Application。Master收到请求后,就把内存中关于Application的部分进行变更,然后给相应的Worker发送消息,消息包括Executor的ID,要求杀死Executor相关内容。
Spark - Standalone部署模式下,Application执行完了怎么办
文章图片

然后再从持久化中移除Application。
Spark - Standalone部署模式下,Application执行完了怎么办
文章图片

Worker收到杀死Executor的请求,根据Master提供的Executor的ID,找到对应的Executor,把进程杀死。
Spark - Standalone部署模式下,Application执行完了怎么办
文章图片

释放ClientEndpoint Application注册取消后,ClientEndpoint就没用了,所以这里停止ClientEndpoint。
Spark - Standalone部署模式下,Application执行完了怎么办
文章图片

异常退出 【Spark - Standalone部署模式下,Application执行完了怎么办】如果是异常退出,Master会监听客户端与当前节点的连接断开,然后会主动的执行上面取消注册Application的操作,并且会通知Application,告知你已经被Master移除了,然后Application收到消息就会停止ClientEndpoint。

    推荐阅读