2.Spark 的架构
Spark 架构采用了分布式计算中的Master-Slave模型。Master 是对应集群中的含有Master 进程的节点,Slave 是集群中含有Worker 进程的节点。Master 作为整个集群的控制器,负责整个集群的正常运行;Worker相当于是计算节点,接收主节点命令与进行状态汇报;Executor负责任务的执行;Client作为用户的客户端负责提交应用,Driver负责控制一个应用的执行,如图1-4所示。
Spark 集群部署后,需要在主节点和从节点分别启动Master进程和Worker 进程,对整个集群进行控制。在一个Spark 应用的执行过程中,Driver 和Worker 是两个重要角色。Driver 程序是应用逻辑执行的起点,负责作业的调度,即Task任务的分发,而多个Worker用来管理计算节点和创建Executor 并行处理任务。在执行阶段,Driver 会将Task 和Task所依赖的file和jar 序列化后传递给对应的Worker 机器,同时Executor 对相应数据分区的任务进行处理。
下面详细介绍Spark 的架构中的基本组件。
ClusterManager :在Standalone 模式中即为Master(主节点),控制整个集群,监控Worker。在YARN 模式中为资源管理器。
Worker :从节点,负责控制计算节点,启动 Executor或 Driver。在 YARN 模式中为NodeManager,负责计算节点的控制。
Driver:运行Application 的main() 函数并创建SparkContext。
Executor :