初始化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。