spark的yarn-client提交流程
1. 在client端启动Driver进程,初始化作业,解析程序,初始化两个DAGScheduler,TaskScheduler.
-- 初始化作业: 判断路径是否存在,权限校验等
-- DAGScheduler将程序的执行流程解析成DAG图,并划分阶段,根据阶段内的分区初始化Task
-- TaskScheduler接收Task,等待分配Task给executor
2. Driver会向ResourceManager,申请资源,想要启动该应用程序的AppMaster
3. ResourceManager会分配一个节点,来运行AppMaster,由NodeManager负责真正分配资源运行AppMaster
4. AppMaster会向ResourceManager申请整个程序所需要的其他资源,准备运行executor进程
5. 在各个节点上运行的executor会向Driver进行反向注册,要求分配任务
6. TaskScheduler将Task分配到不同的executor,并监控实时状态,executor开始执行任务,
7. TaskScheduler收到executor执行完的信息后,表示整个应用程序完成,会向ResouceManager申请注销
spark的yarn-cluster提交流程
1. client会首先向ResourceManager申请资源,要求启动AppMaster进程
2. ResouceManager会分配一个节点,由NodeManager来运行AppMaster,并在AppMaster所在节点运行Driver进程
Driver进程的作用:,初始化作业,解析程序,初始化两个DAGScheduler,TaskScheduler.
-- 初始化作业: 判断路径是否存在,权限校验等
-- DAGScheduler将程序的执行流程解析成DAG图,并划分阶段,根据阶段内的分区初始化Task
-- TaskScheduler接收Task,等待分配Task给executor
3. AppMaster会向ResourceManager申请整个程序所需要的其他资源,准备运行executor进程
4. 在各个节点上运行的executor会向Driver进行反向注册,要求分配任务
5. TaskScheduler将Task分配到不同的executor,并监控实时状态,executor开始执行任务,
6. TaskScheduler收到executor执行完的信息后,表示整个应用程序完成,会向ResouceManager申请注销