如果是被动退出,那Worker在退出之前,这里叫worker_1,会杀死本人每个Executor过程。
Executor异样退出的流程之前曾经讲过了。
咱们在Master和Worker晓得,Worker会定期的向Master发送心跳,如果worker_1退出,那咱们就能够心跳信息中就能够发现,超过60秒没有心跳的Worker此时可能异样退出了,所以就会把这个worker_1的状态改为DEAD,并把他从缓存中移除。
从worker_1中获取对应的Executor对应的Application,告知这些Application,你的Executor不能用了。而后把ApplicationInfo中对应的Executor移除掉,ApplicationInfo移除Executor时,会记录被移除的Executor,把Executor从executors中移除,并且把申请到的CPU资源扣减回去。
如果worker_1下面有运行着Driver,那就会把内存中的DriverInfo信息和长久化引擎的DriverInfo信息移除。
从新创立一个Driver信息,保留内存中,并进行长久化。
最初进行资源调度,从新在worker上调配driver和Executor。