《Spark Streaming实时流式大数据处理实战》 ——3.4 RDD间的依赖方式

举报
华章计算机 发表于 2020/02/22 16:42:03 2020/02/22
【摘要】 本节书摘来自华章计算机《Spark Streaming实时流式大数据处理实战》 —— 书中第3章,第3.4.1节,作者是肖力涛 。

3.4  RDD间的依赖方式

  前面已经提到RDD的容错机制是通过将RDD间转移操作构建成有向无环图来实现的。从抽象的角度看,RDD间存在着血统继承关系,而真正实现的时候,其本质上是RDD之间的依赖(Dependency)关系。

  从图的角度看,RDD为节点,在一次转换操作中,创建得到的新RDD称为子RDD,同时会产生新的边,即依赖关系,子RDD依赖向上依赖的RDD便是父RDD,可能会存在多个父RDD。我们可以将这种依赖关系进一步分为两类,分别是窄依赖(Narrow Dependency)和Shuffle依赖(Shuffle Dependency在部分文献中也被称为Wide Dependency,即宽依赖)。

3.4.1  窄依赖(Narrow Dependency)

  窄依赖中,即父RDD与子RDD间的分区是一对一的,换句话说,父RDD中,一个分区内的数据是不能被分割的,只能由子RDD中的一个分区整个利用。几类常见的窄依赖及其对应的转换操作如图3.4所示。

  图3.4中,P代表RDD中的每个分区(Partition),我们看到,RDD中每个分区内的数据在上面的几种转移操作之后被一个分区所使用,即其依赖的父分区只有一个。比如图中的map、union和join操作,都是窄依赖的。注意,join操作比较特殊,可能同时存在宽、窄依赖。

 image.png

图3.4  RDD窄依赖


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200