文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州
▲ 本章节目的
⚪ 了解Spark的框架核心概念;
⚪ 掌握Spark的Spark集群模式安装;
⚪ 掌握Spark的Spark架构;
⚪ 掌握Spark的Spark调度模块;
一、Spark框架核心概念
1. RDD。弹性分布式数据集,是Spark最核心的数据结构。有分区机制,所以可以分布式进行处理。有容错机制,通过RDD之间的依赖关系来恢复数据。
2. 依赖关系。RDD的依赖关系是通过各种Transformation(变换)来得到的。父RDD和子RDD之间的依赖关系分两种:①窄依赖 ②宽依赖。
①针对窄依赖:父RDD的分区和子RDD的分区关系是:一对一。
窄依赖不会发生Shuffle,执行效率高,spark框架底层会针对多个连续的窄依赖执行流水线优化,从而提高性能。例如 map flatMap等方法都是窄依赖方法。
②针对宽依赖:父RDD的分区和子RDD的分区关系是:一对多。
宽依赖会产生shuffle,会产生磁盘读写,无法优化。
3. DAG。有向无环图,当一整条RDD的依赖关系形成之后,就形成了一个DAG。一般来说,一个DAG,最后都至少会触发一个Action操作,触发执行。一个Action对应一个Job任务。
4. Stage。一个DAG会根据RDD之间的依赖关系进行Stage划分,流程是:以Action为基准,向前回溯,遇到宽依赖,就形成一个Stage。遇到窄依赖,则执行流水线优化(将多个连续的窄依赖放到一起执行)。
5. task。任务。一个分区对应一个task。可以这样理解:一个Stage是一组Task的集合。
6. RDD的Transformation(变换)操作:懒执行,并不会立即执行。
7. RDD的Action(执行)操作:触发真正的执行。