1.RDD。弹性分布式数据集,是Spark最核心的数据结构。有分区机制,因此能够分布式进行处理。有容错机制,经过RDD之间的依赖关系来恢复数据。数据结构
2.依赖关系。RDD的依赖关系是经过各类Transformation(变换)来获得的。父RDD和子RDD之间的依赖关系分两种:①窄依赖 ②宽依赖框架
①针对窄依赖:父RDD的分区和子RDD的分区关系是:一对一分布式
窄依赖不会发生Shuffle,执行效率高,spark框架底层会针对多个连续的窄依赖执行流水线优化,从而提升性能。例如 map flatMap等方法都是窄依赖方法性能
②针对宽依赖:父RDD的分区和子RDD的分区关系是:一对多优化
宽依赖会产生shuffle,会产生磁盘读写,没法优化。spa
3.DAG。有向无环图,当一整条RDD的依赖关系造成以后,就造成了一个DAG。通常来讲,一个DAG,最后都至少会触发一个Action操做,触发执行。一个Action对应一个Job任务。orm
4.Stage。一个DAG会根据RDD之间的依赖关系进行Stage划分,流程是:以Action为基准,向前回溯,遇到宽依赖,就造成一个Stage。遇到窄依赖,则执行流水线优化(将多个连续的窄依赖放到一块儿执行)spark
5.task。任务。一个分区对应一个task。能够这样理解:一个Stage是一组Task的集合io
6.RDD的Transformation(变换)操做:懒执行,并不会当即执行form
7.RDD的Action(执行)操做:触发真正的执行