名称 | 概念详解 |
Application/App | 就是程序员写的Spark代码,包括运行在Driver端的代码和运行在Executor端的代码 |
Driver | 程序中编写的main方法和创建SparkContext的代码 |
SparkContext | 表示Spark运行环境,用来与ClusterManager进行通信的对象 |
ClusterManager | 资源管理器,对于Standalone模式就是Master,对于Yarn模式就ResourceManager |
Worker | Spark集群中的从节点,是真正干活的 (得去启动Executor进程去执行任务) |
Executor | 运行在Worker节点的JVM进程 (一个Worker可以运行多个Executor,因为可以提交多个应用) |
RDD | 弹性分布式数据集,可以理解为分布式集合,分布的各个Worker上的称做分区 |
ShuffleDependency | 宽依赖,父RDD的一个分区会被子RDD的多个分区所依赖 |
NarrowDependency | 窄依赖,父RDD的一个分区只会被子RDD的一个分区所依赖 |
DAG | 有向无环图,指的是RDD的转换流程 (从RDD被创建开始,到Action结束就会形成一个DAG,所以一个Spark应用 可能会有1~N个DAG,取决于触发了多少次Action) |
Job | 作业,按照DAG中的各个Stage阶段进行执行就称作一个Job作业 |
Stage | 阶段,是DAGScheduler根据Shuffle/宽依赖对DAG进行的阶段划分,划分好的Stage中包含多个Task组成的TaskSet |
TaskSet | 一个Stage中的多个Task组成的集合 |
Task | RDD的一个分区在计算的时候就是一个Task |