Spark架构
Spark可以运行在YARN上也可以运行Mesos上,无论运行在哪个集群管理架构上,Spark都是以主从架构运行程序。主节点会运行Driver进程,该进程会调用Spark程序的main方法,启动SparkContext;Executor就是从节点的进程,该进程负责执行Driver分发的具体的task;Work负责启动和管理这些Exector,一个Worker可以有多个Exector。它们之间的关系如下图:
Spark执行任务流程
运行一个Spark可以分为如下步骤
- 启动Driver,创建SparkContext
- Client提交程序给Driver,Driver向Cluster Manager(这里的Cluster Manager在不同的集群资源管理器上,对象也不一样)申请集群资源
- 资源申请完毕后,Driver就会告诉Worker启动对应数量的Executor
- Driver将程序转化为Task,然后分发给Executor执行
Spark运行环境
Spark on YARN
在YARN集群模式下,client向ResourceManager提交任务后,就会启动一个Application Master,Application里面运行Driver,