1. RDD的依赖关系
RDD和它依赖的父RDD的关系有两种不同的类型,
- 窄依赖(narrow dependency)
- 宽依赖(wide dependency)
2. 窄依赖 narrow dependency
窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用.
总结: 窄依赖可以形象的比喻为独生子女.
3. 宽依赖
宽依赖指的的是多个子RDD的Parition会依赖同一个父RDD的Parition
总结: 宽依赖我们形象的比喻为超生
4. Lineage(血统)
- RDD只支持粗粒度转换,即只记录单个块上执行的单个操作. 将**创建RDD的一系列Lineage(血统)**记录下来, 一边回复丢失的分区.
- RDD的Lineage会记录RDD的元数据信息和转换行为, 当该RDD的部分分区数据丢失时, 它可以根据这些信息来重新运算和恢复丢失的数据分区.
- 可以使用rdd.persist()或者rdd.checkpoint()将血统保存下来
- 缓存后,血统不变
- 设置检查点后,血统改变.
RDD的容错详解, 请看下篇