Spark - Standalone部署模式下,Application执行完了怎么办
在前面的文章中已经知道,Application既占用了Master的资源,也占用Worker里的Executor资源。当Application运行完后这些资源是都要释放的。
文章图片
停止Executor
Application首先会从内存中,拿出分配给当前Application的Executors信息,通过Executor的RpcEndpointRef,给每个Executor发送RPC请求,让他们停止Executor,Executor收到请求后,就会停止当前的Executor(字体红色标识)。
文章图片
释放Driver
Executor停止后,Driver就没用了,所以这里停止DriverEndpoint。
文章图片
取消注册Application
Application向Master发送请求,要求取消当前的Application。Master收到请求后,就把内存中关于Application的部分进行变更,然后给相应的Worker发送消息,消息包括Executor的ID,要求杀死Executor相关内容。
文章图片
然后再从持久化中移除Application。
文章图片
Worker收到杀死Executor的请求,根据Master提供的Executor的ID,找到对应的Executor,把进程杀死。
文章图片
释放ClientEndpoint
Application注册取消后,ClientEndpoint就没用了,所以这里停止ClientEndpoint。
文章图片
异常退出
【Spark - Standalone部署模式下,Application执行完了怎么办】如果是异常退出,Master会监听客户端与当前节点的连接断开,然后会主动的执行上面取消注册Application的操作,并且会通知Application,告知你已经被Master移除了,然后Application收到消息就会停止ClientEndpoint。
推荐阅读
- Beego打包部署到Linux
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- Spark|Spark 数据倾斜及其解决方案
- Spring|Spring Boot部署到Resin遇到的问题
- 如何在阿里云linux上部署java项目
- 部署专题集合
- jar|springboot项目打成jar包和war包,并部署(快速打包部署)
- 一键编译部署Mysql
- 8月16日|8月16日 全网备份
- 改变企业沟通环境|改变企业沟通环境 从部署企业IM开始