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