1.Master和Worker集群资源管理
Master和Worker是Spark的守护进程、集群资源管理者,即Spark在特定模式下正常运行所必须的进程。Master和Worker 只有 Standalone模式中采用,所以Master和Worker是运行在集群模式中的。Master和Worker随着集群的启动而启动,随着集群的停止而消失。

- Master 类似于Yarn中的ReourceManager
- Worker 类似于Yarn中的NodeManager
2.Driver和Executor任务的管理者
Driver和Executor是临时程序,当有具体任务提交到Spark集群才会开启的程序。

Driver 作用:
- 负责任务调用,类似于 ApplicationMaster。
- 负责将用户写的程序转换为一个job。如执行一个worldCount程序。
- 跟踪所有的Executo任务状态;是否闲置,是否接收到任务,是否完成,完成进度如何等。如果执行失败,会在其他服务器上重写执行一次(容错处理)。
- 负责所有执行节点的调度任务;
- 在job执行过程中,可以打开一个web界面,这就是UI展示。
- Driver 是一个线程。
Executor作用:
- 负责执行spark具体的job任务。
- Executor 是一个进程,他们把一个个任务交给 task(线程) 去执行。
- Executor 中会有一些资源 如 内核数、内存等,task 会共享这些资源。
生命周期:
- Driver类似于一个 ApplicationMaster;当有任务执行时会生成一个Driver,任务接收后,会申请注销自己。
- Executor 同样如此,随着单个任务完成之后,而消失。
Master和Worker与Driver和Executor对比:
- Master和Worker:只有Standalone模式中才有。即Spark在特定模式下正常运行所必须的进程。
- Driver和Executor:Standalone模式和YARN模式都有,属于临时进程,当有任务具体提交到Spark集群时才会开启的进程。