原理初探
图解
名词解释
http://spark.apache.org/docs/latest/cluster-overview.html
- Application: 指的是用户编写的Spark应用程序,如我们自己编写的WordCount, 里面包括了Driver功能代码和分布在各个Worker节点运行的Executor代码
- Driver: 运行main方法并创建SparkContext的进程
- SparkContext:是Spark执行时的上下文环境,其实就是帮助客户端和ClusterManager集群管理器进行交互的,如通信,资源申请,任务分配,任务监控…
- ClusterManager:集群管理器,就是集群的老大,在Standalone模式下,就是Master, 在Yarn模式下是ResourceManager(还会创建一个ApplicationMaster)
- Executor:是运行在Worker工作节点上的JVM进程 ,负责真正的运行Task任务
- Worker:Spark集群的从节点/工作节点,里面可以启动1~n个Executor进程
- RDD:
弹性分布式数据集
,是分布式内存的一个抽象表示 - Partition:是
RDD中的一个分区
- DAG:
有向无环图
,指的是RDD直接的依赖关系和执行流程,可以理解为RDD执行的流程图 - ==Job:==作业,
按照DAG流程图执行就形成了一个作业Job
(动态的作业)==DAG(静态的图) - Stage:DAG中按照shuffle宽依赖划分出来的阶段
- Task:任务,
同一个Stage阶段中的同一个分区上的一系列操作,组成一个Task
- TaskSet:任务集,
同一个Stage中的多个可以并行执行的Task组成TaskSet任务集