在后面的文章中曾经晓得,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。