spark的yarn模式下的client提交步骤 1.在client启动driver进程,初始化作业,解析程序,初始化两个调度器DAGScheduler和TasksScheduler --初始化作业:用来判断路径是否正确,权限校验等 --DAGSchefuler会把程序解析成DAG有向无环图,在又宽算子依赖划分stage, 每个stage中又会划分tasks,在把task调度给TaskScheduler --TaskSchedular 把Tasks池中的task分配给executor来执行 2.Driver会向resourceManage申请资源,启动一个AppMaster进程 3.ResourceManage会分配一个节点来运行AppMaster,由NodeManage真正分配资源运行AppMaster 4.AppMaster会向ResourceManage申请整个程序所需要运行的其他资源,准备启动executor 5.在各个节点上运行的executor会向Driver反向注册,要求分配任务 6.TaskScheduler将task分配到各个executor上,并实时监控executor的运行状态,executor开始执行任务 7.TaskScheduler收到executor执行完成的信息,表示整个运行程序完成,会向resourceManage申请释放资源
spark的yarn模式下的cluster模式 1.Client首相会向ResourceManage申请资源,要求启动AppMaster 2.ResourceManage会分配一个节点,由NodeManage来运行AppMaster,并在AppMaster所在的节点运行Driver进程 3.Driver进程是用来初始化作业,解析程序的,并初始化出两个调度器:DAGScheduler和TaskScheduler --初始化作业:时间文件路劲的验证,以及权限的校验 --DAGScheduler:将程序解析成DAG(有向无环图),在由DAG里面的宽依赖算子来进行stage的划分,在确定stage里面的task,并将task调度给TaskScehduler --TaskScheduler:将task池中的task分配给各个executor执行,实时监控executor的执行状态 4.各个节点上面的executor会向resourceManage反向 注册,申请分配任务 5.TaskScheduler将task分配到各个executor上执行,并实时监控executor的执行状态 6.TaskScheduler收到最后一个executor执行成功的信息,表示整个应用程序完成,就会向ResouceManage申请释放资源



