spark架构
术语解释
spark on yarn-client模式资源调度和任务调度
一个action算子触发一个job任务
资源调度
1、client模式,在本地启动Driver程序
2、向RS(ResourceManager)发送请求,启动AM(ApplicationMaster)的资源
3、AM随机选定一个节点启动AM
4、AM向RM申请资源,用于启动executor
5、RM分配一批节点,AM向NM发送命令启动executor
6、executor反向注册给Driver端
任务调度
1、当遇到action算子时,触发一个job,开始执行任务调度
2、DAG Scheduler基于Stage构建DAG有向无环图
3、DAG Scheduler根据宽窄依赖将DAG切分成多个Stage(Stage:由多个并行计算的task组成)
4、将Stage以TaskSet的形式发送给Task Scheduler
5、Task Scheduler将TaskSet中的task发送给executor中执行(会尽量发送到数据所在节点的executor上执行)
spark on yarn-cluster模式即在本地提交Spark Application后,Driver会和AM运行在同一节点上。
- ApplicationMaster的作用:
- 为当前的Application申请资源
- 给NameNode发送消息启动Executor。
注意:ApplicationMaster有launchExecutor和申请资源的功能,并没有作业调度的功能。
但当以yarn-cluster模式执行时,AM有任务调度的作用,因为Driver和AM在同一节点了
spark Stand alone模式
可以查看Spark中Standalone的两种提交模式(Standalone-client模式与Standalone-cluster模式) - 爱码网