1

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


大军
847 声望183 粉丝

学而不思则罔,思而不学则殆