RDD在lineage方面主要分为两种narrow dependency和wide dependency来解决数据容错时的高效性。
narrow dependency是指父RDD的每个分区最多被子RDD的一个分区使用,表现为一个父RDD的分区对应一个子RDD的一个分区或者多个父RDD的分区对应一个子RDD的分区,也就是说一份父RDD的分区不能对应多个子RDD的分区。
wide dependency是指子RDD的分区依赖多个父RDD的分区,也就是说存在一个父RDD的分区对应多个子RDD的分区。
对于wide dependency,这种输入和输出不在同一个节点上,lineage方法对于输入节点完好,输出节点宕机时,通过重新计算,这种方法容错是有效的,否则无效,需要向其祖先追溯是否可以重试。narrow dependency对数据的重算开销远小于wide dependency。
网友评论