在后面的文章中曾经晓得,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。
异样退出
如果是异样退出,Master会监听客户端与以后节点的连贯断开,而后会被动的执行下面勾销注册Application的操作,并且会告诉Application,告知你曾经被Master移除了,而后Application收到音讯就会进行ClientEndpoint。