Spark RDD依赖关系(Dependencies)
2017-12-17 15:27
323 查看
在RDD中将依赖划分成两种类型:窄依赖(Narrow Dependencies)和宽依赖(Wide Dependencies)。
窄依赖:是指每一个父RDD的分区都至多被一个子RDD的分区使用(每一个父RDD最多只能被一个子RDD使用)。
宽依赖:是多个子RDD的分区依赖一个父RDD的分区(一个父RDD被多个子RDD使用)。
在这两种依赖的区别从两个方面来说比较有用。第一,窄依赖允许窄单个集群节点上流水线式执行,这个节点可以计算所有所有父级分区。例如,可以逐个元素地依次执行filter操作和map操作。相反,宽依赖需要所有的父RDD数据可用,并且数据已经通过类MapReduce的操作Shuffle完成。第二,在窄依赖中,节点失败后的恢复更加高效。因为只有丢失的父级分区需要重新计算,并且这些丢失的父级分区可以并行化地在不同节点上重新计算。于此相反,在宽依赖的继承关系中,单个失败的节点可能导致一个RDD的所有先祖RDD中的一些分区丢失,导致计算的重新执行。
窄依赖:是指每一个父RDD的分区都至多被一个子RDD的分区使用(每一个父RDD最多只能被一个子RDD使用)。
宽依赖:是多个子RDD的分区依赖一个父RDD的分区(一个父RDD被多个子RDD使用)。
在这两种依赖的区别从两个方面来说比较有用。第一,窄依赖允许窄单个集群节点上流水线式执行,这个节点可以计算所有所有父级分区。例如,可以逐个元素地依次执行filter操作和map操作。相反,宽依赖需要所有的父RDD数据可用,并且数据已经通过类MapReduce的操作Shuffle完成。第二,在窄依赖中,节点失败后的恢复更加高效。因为只有丢失的父级分区需要重新计算,并且这些丢失的父级分区可以并行化地在不同节点上重新计算。于此相反,在宽依赖的继承关系中,单个失败的节点可能导致一个RDD的所有先祖RDD中的一些分区丢失,导致计算的重新执行。
相关文章推荐
- Spark RDD的依赖关系
- Spark RDD概念学习系列之rdd的依赖关系彻底解密(十九)
- spark(13)-RDD的依赖关系(corse22)
- Spark RDD概念学习系列之rdd的依赖关系彻底解密(十九)
- Spark2.x学习笔记:11、RDD依赖关系与stage划分
- spark源码阅读笔记RDD(六) RDD的依赖关系
- RDD的依赖关系,以及造成的stage的划分
- Spark中Task,Partition,RDD、节点数、Executor数、core数目的关系
- dba_dependencies对象依赖关系
- 大数据IMF传奇行动绝密课程第22课:RDD的依赖关系彻底解密
- Spark中Task,Partition,RDD、节点数、Executor数、core数目的关系
- 大数据IMF传奇行动绝密课程第22课:RDD的依赖关系彻底解密
- Spark中Task,Partition,RDD、节点数、Executor数、core数目的关系
- Spark中Task,Partition,RDD、节点数、Executor数、core数目的关系和Application,Driver,Job,Task,Stage理解
- Spark成长之路(2)-RDD中分区依赖系统
- Spark中Task,Partition,RDD、节点数、Executor数、core数目的关系
- 在Spark集群中,集群的节点个数、RDD分区个数、cpu内核个数三者与并行度的关系??
- RDD依赖关系解密
- Spark中Task,Partition,RDD、节点数、Executor数、core数目的关系
- Spark集群中,集群的节点个数、RDD分区个数、cpu内核个数三者与并行度的关系