初始化DAGScheduler 和 TaskScheduler调度器,SparkDeploySchedulerBackend,以及在其内部启动DriverEndpoint 和 ClientEndpoint。
其中:
ClientEndpoint:用于向Master注册应用程序
DriverEndpoint:用于发送任务给work中的executor
DAGScheduler:(根据宽依赖)将job划分成多个Stage,每个Stage创建一个TaskSet,并将TaskSet提交给TaskScheduler
TaskScheduler:用于接收TaskSet,并发送给Executor。如果某个任务失败, 任务调度器负责重新分配该任务的计算。
Executor的创建和执行:
Master返回资源列表给client端后通知Worker中的WorkerEndpoint创建CoarseGrainedExecutorBackend进程。
该进程会创建执行容器Executor,在Executor运行过程中 CoarseGrainedExecutorBackend(粗粒度执行后端)汇报执行情况给SparkContext。
其中:
ClientEndpoint:用于向Master注册应用程序
DriverEndpoint:用于发送任务给work中的executor
DAGScheduler:(根据宽依赖)将job划分成多个Stage,每个Stage创建一个TaskSet,并将TaskSet提交给TaskScheduler
TaskScheduler:用于接收TaskSet,并发送给Executor。如果某个任务失败, 任务调度器负责重新分配该任务的计算。
Executor的创建和执行:
Master返回资源列表给client端后通知Worker中的WorkerEndpoint创建CoarseGrainedExecutorBackend进程。
该进程会创建执行容器Executor,在Executor运行过程中 CoarseGrainedExecutorBackend(粗粒度执行后端)汇报执行情况给SparkContext。