RDD依赖关系

1)RDD血缘关系

RDD只支持粗粒度转换,即在大量记录上执行的单个操作。将创建RDD的一系列Lineage(血统)记录下来,以便恢复丢失的分区。RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区。

命令:toDebugString

2)RDD依赖关系

两个相邻RDD之间的关系

3)RDD窄依赖

窄依赖表示每一个父(上游)RDD的Partition最多被子(下游)RDD的一个Partition使用。

窄依赖可以形象的比喻为独生子女

4)RDD宽依赖

宽依赖表示同一个父(上游)RDD的Partition被多个子(下游)RDD的Partition依赖,会引起Shuffle,总结:宽依赖我们形象的比喻为多生。

5)RDD阶段划分

DAG(Directed Acyclic Graph)有向无环图是由点和线组成的拓扑图像,该图像具有方向,不会闭环。

RDD依赖关系_第1张图片

6)RDD任务划分

RDD任务切分中间分为:Application、Job、Stage和Task

  • Application:初始化一个SparkContext,即生成一个Application
  • Job:一个Action算子就会生成一个Job
  • Stage:Stage等于宽依赖(ShuffleDependency)的个数加1
  • Task:一个Stage阶段中,最后一个RDD的分区个数就是Task的个数

注意:Application =》Job =》Stage =》Task 每一层都是1对n的关系

RDD依赖关系_第2张图片

你可能感兴趣的:(Spark,big,data,大数据)