直播365足球-beat365投注网站-bst365官网

Spark宽依赖、窄依赖

在Spark中,RDD(弹性分布式数据集)存在依赖关系,宽依赖和窄依赖。 宽依赖和窄依赖的区别是RDD之间是否存在shuffle操作。 窄依赖 窄依赖指父R

Spark宽依赖、窄依赖

在Spark中,RDD(弹性分布式数据集)存在依赖关系,宽依赖和窄依赖。

宽依赖和窄依赖的区别是RDD之间是否存在shuffle操作。

窄依赖

窄依赖指父RDD的每一个分区最多被一个子RDD的分区所用,即一个父RDD对应一个子RDD或多个父RDD对应一个子RDD

map,filter,union属于窄依赖

窄依赖对于流水化作业有优化效果

每一个RDD算子都是一个fork/join操作,join会写入磁盘,流水线作业优化后fork,中间不join写入磁盘

宽依赖

宽依赖指子RDD的每个分区都依赖于父RDD的多个分区

groupby和join属于宽依赖

DAGScheduler从当前算子往前推,遇到宽依赖,就生成一个stage

分区划分规则

分区如何划分

分区该放到集群内哪个节点

Spark默认两种划分器:HashPartitioner和RangePartitioner

宽依赖、窄依赖的概念不仅用在调度,对容错也有用,如果一个节点损坏,运算是窄依赖,只要把丢失的父节点分区重新计算即可。而宽依赖的话,就需要使用checkpoint来检查和重新计算。

逻辑上,每个RDD的算子都是一个fork/join(此join非上文的join算子,而是指同步多个并行任务的barrier):把计算fork到每个分区,算完后join,然后fork/join下一个RDD的算子。如果直接翻译到物理实现,是很不经济的:一是每一个RDD(即使 是中间结果)都需要物化到内存或存储中,费时费空间;二是join作为全局的barrier,是很昂贵的,会被最慢的那个节点拖死。如果子RDD的分区到 父RDD的分区是窄依赖,就可以实施经典的fusion优化,把两个fork/join合为一个;如果连续的变换算子序列都是窄依赖,就可以把很多个 fork/join并为一个,不但减少了大量的全局barrier,而且无需物化很多中间结果RDD,这将极大地提升性能。Spark把这个叫做流水线(pipeline)优化。

← 上一篇: 《迷彩虎军情》最新一期,全集完整版高清在线观看
下一篇: CPU执行程序的过程 →

相关推荐

燕云十六声神仙渡前尘旧物相思绢收集攻略-前尘旧物相思绢在哪

燕云十六声神仙渡前尘旧物相思绢收集攻略-前尘旧物相思绢在哪

掌门下山公测最强伙伴是谁2025-掌门下山最强伙伴推荐攻略 掌门下山公测最强伙伴是南宫婉儿、青玉、清沙 ,玩家只需选择强力角色就能大幅度

揭秘绦虫|一文带你了解它!

揭秘绦虫|一文带你了解它!

我有次感觉肚子有点痛而且屁股痒得难受,大便里还出现了白色的东西,生怕自己得什么病了,然后我就去医院检查。 医生听了我的描述之后,

如何成为一名侦探

如何成为一名侦探

资历及培训 成为侦探有几种不同的途径:研究生、职业侦探、警察和学徒。 资历及培训 一个人在成为侦探之前不需要先成为警察。对于毕业生来

光遇怎么联机 光遇如何与好友联机

光遇怎么联机 光遇如何与好友联机

光遇非常的休闲好玩,很多人觉得一个人玩太孤单,乏味了,想要去和别人联机进行玩耍,和朋友们一起看风景聊天,也可以带各个的新人玩家

珍珠为什么一般配黄金(为什么珍珠比黄金贵)

珍珠为什么一般配黄金(为什么珍珠比黄金贵)

最近很多人在问珍珠为什么一般配黄金,今天露露整理了一些相关资料,下面分享给大家一起了解下吧。 珍珠和黄金搭配的美学自古以来,黄金

为什么微波炉会突然响(微波炉突然响声!揭秘背后原因)

为什么微波炉会突然响(微波炉突然响声!揭秘背后原因)

摘要:本文将从以下四个方面对微波炉突然响声的原因进行详细阐述。首先,介绍微波炉的工作原理,以及在正常使用过程中可能产生的声音。