Spark架构及运行机制(1) - 系统架构

Spark采用主从(Master/Slave)架构构建计算集群,架构图如下:

其中Client为提交Spark程序的节点,其余为Spark分布式集群中的物理节点。这些节点可以分为2类,集群管理节点(ClusterMaster)和从(Slave)节点。

一、集群管理节点
ClusterMaster节点是整个Spark集群的核心,ClusterMaster节点不执行实际的计算任务,而是负责管理整个集群的计算资源。这里的计算资源是指除ClusterMaster以外的,其他物理主机的内存、cpu处理器等物理资源。这些计算资源由ClusterMaster节点统一管理,并将这些资源合理的分配给用户提交的各个应用程序。
所有的计算节点都要向ClusterMaster节点注册,将自身的计算资源交给ClusterMaster节点进行统一调度。

二、Slave节点
Slave节点是执行作业逻辑的节点,根据功能的不同分为2类:任务调度节点(Driver)和任务执行节点(Worker)。
(1)任务调度节点
如果节点上运行了Spark程序main函数所在的进行,那么该节点就作为该应用程序的Driver节点。
Driver节点作为整个应用程序逻辑的起点,负责创建SparkContext、定义一个或多个RDD。
Driver主要负责2方面的任务:
    1.负责将一个应用程序分割为物理上可执行的任务(Task);
    2.将Task分配到最合适的Worker节点上运行,并协调这些Task在Worker上完成运行;

(2)Worker节点
运行Executor进程的节点就是Worker节点,Spark为每一个应用程序在Worker节点上创建一个Executor进程。Executor进程负责2方面的工作:
    1.负责执行Task任务,并将执行结果反馈给Driver节点;
    2.为RDD提供内存存储;


三、Spark程序的运行模式
(1)本地模式(Local):Spark作业实在单机使用非并行模式执行;
(2)单机模式(Standalone):Standalone模式运行的Spark集群对不同的应用程序采取先进先出(FIFO)的顺序进行调度,默认情况下,每个应用程序会独占所有可用节点的资源;
(3)伪分布式模式(local-cluster):单机环境下模拟了Standalone模式。在伪分布式模式下资源的调度流程和Standalone模式相同,但是资源调度不是实际的物理节点,而是在单机上运行的伪分布Spark集群;
(4)YARN模式:Spark集群运行在YARN资源管理框架上;
(5)Mesos模式:Spark集群运行在Mesos资源管理框架上;

猜你喜欢

转载自margaret0071.iteye.com/blog/2387040