参考《图解Spark:核心技术与案例实战》
Spark 2.0版本
一、Spark基本架构
Application:Spark应用程序
Driver:Spark中的Driver即运行Application的main函数并且创建SparkContext,其中创建SparkContext为Spark的上下文。在Spark中由SparkContext负责与ClusterManager通信,进行资源申请、任务的分配和监控等;当Executor部分运行完成时候,Driver负责将SparkContext关闭。通常用SparkContext 代表Driver。
Cluster Manager(集群管理器):指在集群上获取资源的外部服务,目前有以下几种。
- Standalone:Spark原生的资源管理,是由Master负责资源的管理。
- Hadoop Yarn:由Yarn中的ResourceManager负责资源的管理。
- Mesos:由Mesos中的Mesos Master负责资源管理
- Kubernetes(K8s):Spark 2.3版本以上
Worker:集群中任何可以运行Application代码的节点,类似于YARN的NodeManager
Master:Spark Standalone运行模型下的主节点,负责资源管理和分配资源来运行Spark Application。
Exeuctor:Application运行Worker节点上的一个进程,该进程负责运行Task,并负责将数据存在内存或者磁盘上,每个Application都有各自一批的Executor。在Spark On Yarn 模式下,其进程名字为CoarseGraniedExecutorBackend,类似于Hadoop MapReduce中的Yarn Child。