乐趣区

关于spark:Spark-Executor的运行

在 Executor 的资源调度曾经提到了 Worker 上怎么调配 Executor 资源的过程,这里就讲 Worker 调配到 Executor 后是怎么运行这些 Executor 的。

流程

在调用 Worker 启动 Executor 之前,Master 须要更新内存中 Application 的信息,包含启动一个 Executor 的各种信息(这里包含 Worker 的信息、CPU 数量、内存大小等)、曾经调配了多少外围数。

被调配的 Worker 也要更新他所启动的 Executor,曾经应用的 CPU 数量、曾经应用的内存大小。

Master 筹备好内存数据变更后,就开始告诉 Worker 启动 Executor,向 Worker 发送的音讯包含 masterUrl、Application 的 ID、Executor 的 ID、Application 的形容信息 ApplicationDescription、Executor 调配取得的内核数、Executor 调配取得的内存大小等。

Master 同时也给 Application Driver 发送音讯,告知 Worker 上的 executor 曾经启动,Application Driver 收到音讯后,打印日志。

Worker 收到 Master 发送过去的启动 Executor 的命令后,封装了 Master 传过来的信息,保留在内存中,并启动了一个 Executor 的过程,这个过程用来 Driver 与 Executor 通信。Executor 过程启动后,更新曾经应用的内核数 coresUsed 和曾经应用的内存大小 memoryUsed。

Executor 的过程启动后,会向 DriverEndpoint 申请数据,包含 Spark 属性信息和密钥,Executor 拿到这些数据后,就开始创立本人的 RPC 服务,用于通信。

Executor 筹备好后,开始向 DriverEndpoint 发送注册申请。

DriverEndpoint 收到申请后,把 Executor 的数据保留在内存中,而后再发消息给 Executor,告知曾经解决好注册信息。Executor 晓得本人注册胜利后,就创立了一个 Executor 对象。

源码思维导图

master- 资源调度
Worker- 解决信息
DriverEndpoint 音讯解决
CoarseGrainedExecutorBackend
CoarseGrainedExecutorBackend 音讯

退出移动版