乐趣区

关于spark:Spark-Executor异常退出怎么办

当 Worker 创立 Executor 的时候,会启动一个线程来创立这个 Executor,并且期待获取 Executor 过程的退出状态。

如果 Executor 异样退出,这个线程就会晓得,而后就会发信息告知 Worker。

Worker 收到音讯后,就会把这个音讯转发给 Master。这个音讯会携带 Application 的 ID 和 Executor 的 ID。

Master 收到音讯后,就会依据 Application 的 ID 和 Executor 的 ID 找到 Master 内存中 Application 和 Executor 信息,并告知 Application。

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

退出移动版