Spark-executor

2019-01-01  本文已影响25人  丹之

在 executor 模块中,最重要的几个类(或接口、trait)是:

StandaloneAppClient(AppClient)

StandaloneAppClient 主要有以下几个作用:

  1. 向 master 注册 application
  2. 接收并处理来自 master 的各种消息,如 RegisteredApplication、ApplicationRemoved、ExecutorAdded 等
  3. 调用 SchedulerBackend 回调接口以通知各种重要的 event,比如:Application 失败、添加了 executor、executor 更新等
主要成员
主要方法

SchedulerBackend

SchedulerBackend 在 Standalone 模式下的 SchedulerBackend 的实现是 StandaloneSchedulerBackend,但是从大体的作用上来说,各个模式下的 SchedulerBackend 作用是相同的,主要为:

TaskScheduler

低等级的 task 调度接口,当前只有 TaskSchedulerImpl 这一个实现。该接口支持在不同的部署模式下工作。每个 SparkContext(application) 对应唯一的一个 TaskScheduler。 TaskScheduler 从 DAGScheduler 的每一个 stage 获取 tasks,并负责发送到集群去执行这些 tasks,在失败的时候重试,并减轻掉队情况。TaskScheduler 会返回 events 给 DAGScheduler。

主要方法

AppClient 的创建与启动

AppClient 的创建与启动也比较简单,主要流程如下:

上一篇下一篇

猜你喜欢

热点阅读