Spark - Executor异常退出怎么办

【Spark - Executor异常退出怎么办】当Worker创建Executor的时候,会启动一个线程来创建这个Executor,并且等待获取Executor进程的退出状态。
Spark - Executor异常退出怎么办
文章图片

如果Executor异常退出,这个线程就会知道,然后就会发信息告知Worker。
Spark - Executor异常退出怎么办
文章图片

Worker收到消息后,就会把这个消息转发给Master。这个消息会携带Application的ID和Executor的ID。
Spark - Executor异常退出怎么办
文章图片

Master收到消息后,就会根据Application的ID和Executor的ID找到Master内存中Application和Executor信息,并告知Application。
Spark - Executor异常退出怎么办
文章图片

然后把ApplicationInfo中对应的Executor以及WorkerInfo对应的Executor移除掉。
ApplicationInfo移除Executor时,会记录被移除的Executor,把Executor从executors中移除,并且把申请到的CPU资源扣减回去。
WorkerInfo移除Executor时,会把Executor占用的CPU、内存资源扣减回去。
由于Executor已经退出,以及Master保存的申请的资源也还原,所以Master会重新给Application进行资源调度。

    推荐阅读