spark|Spark中RDD的依赖关系

一、RDD血缘关系 RDD 只支持粗粒度转换,即在大量记录上执行的单个操作,在RDD上的每次操作会生成一个新的RDD。将创建 RDD 的一系列 Lineage(血统)记录下来,以便恢复丢失的分区。RDD 的 Lineage 会记录 RDD 的元数据信息和转换行为,当该 RDD 的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区。
二、RDD 依赖关系 【spark|Spark中RDD的依赖关系】所谓的依赖关系,其实就是两个相邻 RDD 之间的关系。
三、RDD 的宽依赖与窄依赖 宽依赖表示同一个父(上游)RDD 的 Partition 被多个子(下游)RDD 的 Partition 依赖,会引起 Shuffle,总结:宽依赖可以比喻为多生,也就是一个RDD对应多个RDD。
窄依赖表示每一个父(上游)RDD 的 Partition 最多被子(下游)RDD 的一个 Partition 使用,窄依赖可以比喻为独生子女,也就是一个RDD对应一个RDD。
四、RDD 阶段划分 DAG(Directed Acyclic Graph)有向无环图是由点和线组成的拓扑图形,该图形具有方向,不会闭环。例如,DAG 记录了 RDD 的转换过程和任务的阶段。

    推荐阅读