Spark基本架构
从集群部署的角度来看,Spark集群由以下部分组成:
- Cluster Manager
- Worker
- Executor
- Driver
- Application
Cluster Manager
- 集群管理器,主要负责整个集群资源的分配与管理;
- Cluster Manger分配的资源属于一级分配,将各个Worker上的内存、CPU分配给Application,但并不负责对Executor资源的分配
- YARN部署模式下为ResourceManager
Worker
- 工作节点,YARN部署模式下由NodeManager替代;
- 负责以下工作:
- 将自己的内存、CPU等资源通过注册的机制告知ClusterManger
- 创建Executor
- 将资源和任务进一步分配给Executor
- 同步资源信息、Executor状态信息给Cluster Manager
Executor
- 执行任务的一线组件
- 主要负责:
- 任务的执行
- 与Worker、Driver信息的同步
Driver
- Application的驱动程序,Application通过Driver与Cluster Manager和Executor进行通信;
- Driver可以运行在Application中,也可以由Application提交给Cluster Manager并由Cluster Manager安排Worker执行;