Spark Cluster Mode Overview
官网参考:
http://spark.apache.org/docs/latest/cluster-overview.html#cluster-mode-overview
Spark应用程序作为集群上的独立进程集运行,由主程序(称为驱动程序)中的SparkContext对象协调。
步骤描述:
1、为了在集群上运行,SparkContext首先会连接到集群管理器(要么是Spark自己的独立的集群管理器,要么是Mesos要么是yarn).然后集群管理器 会给applications之间分配资源。
2、一旦连接好,Spark就会获得集群中executor的位置。然后发送你的应用程序代码给executos.最后,SparkCotext将任务发送给executors去执行。
概念描述
1、Application:基于Spark的应用程序。包含driver程序和集群上的excuter
2、Driver program:运行应用程序main()函数并创建SparkContext的进程
3、Cluster manager:用于获取集群资源的外部服务(例如,独立管理器、Mesos、YARN)
4、Deploy mode:区分驱动程序进程运行的位置。在“集群”模式下,框架启动集群内部的驱动程序。在“客户端”模式下,提交者在集群外部启动驱动程序。
5、Worker node:可以在集群中运行应用程序代码的任何节点
6、Executor:在Worker node上为应用程序启动的进程,它运行任务并将数据保存在内存或磁盘存储中。每个应用程序都有自己的executers。
7、Task:被送到executor的一个工作单元。
8、Job:由多个task组成的并行计算。(一个action触发一个job)
9、Stage:每个job会被划分成更小的job叫做stage.这些stage之间是相互依赖的(一父一子称为窄依赖,一父多子称为宽依赖)