精华内容
下载资源
问答
  • 宽依赖和窄依赖的区别 参考: https://blog.csdn.net/u013384984/article/details/80963455 总结一下: 窄依赖:父RDD中,每个分区内的数据,都只会被子RDD中特定的分区所消费,为窄依赖: **宽依赖:**父RDD中,...

    宽依赖和窄依赖的区别
    参考:
    https://blog.csdn.net/u013384984/article/details/80963455
    总结一下:

    窄依赖:父RDD中,每个分区内的数据,都只会被子RDD中特定的分区所消费,为窄依赖:

    **宽依赖:**父RDD中,分区内的数据,会被子RDD内多个分区消费,则为宽依赖: 会产生shuffle,遇到宽依赖,则划分为多个stage
    在这里插入图片描述

    展开全文
  • spark 中 宽依赖 窄依赖的 区别及优缺点 原创it_liangsir 最后发布于2018-06-29 17:58:02 阅读数 3315 收藏 展开 窄依赖与宽依赖的概述: rdd 中的–宽依赖—父RDD每个分区的数据可能被多个子RDD分区使用 ,子RDD...

    spark 中 宽依赖 和 窄依赖的 区别及优缺点
    原创it_liangsir 最后发布于2018-06-29 17:58:02 阅读数 3315 收藏
    展开
    窄依赖与宽依赖的概述:

    rdd 中的–宽依赖—父RDD每个分区的数据可能被多个子RDD分区使用 ,子RDD分区通常对应所有的父RDD分区,这其中分为两种情况:1,一个父RDD的分区对应所有的子RDD的分区(没有core-patitioned过的join)2,一个父RDD分区对应非全部的的多个RDD分区(groupByKey)

    rdd中的–窄依赖—父RDD每个分区的只被子RDD的一个分区使用,子RDD 通常对应常数个父RDD分区,这其中分为两种情况:1,一个子RDD分区对应一个父RDD分区(filter,map)2,一个子RDD分区对应多个父RDD分区(co-partitioned过的join)

    窄依赖与宽依赖的优缺点:

    宽依赖----有shuffle----要跨网络拉去数据-----耗资源,窄依赖----一个节点内完成转化-----快速

    当子RDD 需要重算时,宽依赖 会重算所有父RDD分区的数据,这样会出现多余的重算,窄依赖只需计算对应的一个父RDD的数据即可

    窄依赖:filter map flatmap mapPartitions

    宽依赖:reduceByKey grupByKey combineByKey,sortByKey, join(no copartition)
    ————————————————
    版权声明:本文为CSDN博主「it_liangsir」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_21918145/article/details/80859177

    展开全文
  • 开门见山,本文就针对一个点,谈谈Spark中的宽依赖和窄依赖,这是Spark计算引擎划分Stage根源所在,遇到宽依赖,则划分为多个stage,针对每个Stage,提交一个TaskSet: 上图:一张网上图: 基于此图,分析下...

     

    开门见山,本文就针对一个点,谈谈Spark中的宽依赖和窄依赖,这是Spark计算引擎划分Stage的根源所在,遇到宽依赖,则划分为多个stage,针对每个Stage,提交一个TaskSet:

    上图:一张网上的图:

    基于此图,分析下这里为什么前面的流程都是窄依赖,而后面的却是宽依赖:

    我们仔细看看,map和filter算子中,对于父RDD来说,一个分区内的数据,有且仅有一个子RDD的分区来消费该数据。

    同样,UNION算子也是同样的:

    所以,我们判断窄依赖的依据就是:父类分区内的数据,会被子类RDD中的指定的唯一一个分区所消费:

    这是很重要的:

    面试的时候,面试官问到了一个问题,如果父类RDD有很多的分区,而子类RDD只有一个分区,我们可以使用repartition或者coalesce算子来实现该效果,请问,这种实现是宽依赖?还是窄依赖?

    如果从网上流传的一种观点:子RDD一个partition内的数据依赖于父类RDD的所有分区,则为宽依赖,这种判断明显是错误的:

    别笑,网上的确有这种说法,我差点栽了跟头,这种解释实质上是错误的,因为如果我们的reduceTask只有一个的时候,只有一个分区,这个分区内的数据,肯定依赖于所有的父类RDD:

    毫无疑问,这是个窄依赖:

    相对之下,什么是宽依赖呢?

    宽依赖,指的是父类一个分区内的数据,会被子RDD内的多个分区消费,需要自行判断分区,来实现数据发送的效果:

    总结一下:

    窄依赖:父RDD中,每个分区内的数据,都只会被子RDD中特定的分区所消费,为窄依赖:

    宽依赖:父RDD中,分区内的数据,会被子RDD内多个分区消费,则为宽依赖:

    这里,还存在一个可能被挑刺的地方,比如说父类每个分区内都只有一个数据,毫无疑问,这些数据都会被唯一地指定到子类的某个分区内,这是窄依赖?还是宽依赖?

    这时候,可以从另外一个角度来看问题:

    每个分区内的数据,是否能够指定自己在子类RDD中的分区?

    如果不能,那就是宽依赖:如果父RDD和子RDD分区数目一致,那基本就是窄依赖了:

    总之,还是要把握住根本之处,就是父RDD中分区内的数据,是否在子类RDD中也完全处于一个分区,如果是,窄依赖,如果不是,宽依赖。
    ————————————————
    版权声明:本文为CSDN博主「土豆钊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u013384984/article/details/80963455

    展开全文
  • RDD的宽依赖和窄依赖

    2019-11-30 15:09:47
    1、RDD的宽依赖和窄依赖的区别 是否有shuffle操作,也叫洗牌操作 窄依赖: 一对一 或者 多对一 宽依赖: 一对多 窄依赖可以进行流水线优化,宽依赖不可以 优化:fork/join 机制 一个作业可以划分成多个阶段 ...

    1、RDD的宽依赖和窄依赖的区别
    是否有shuffle操作,也叫洗牌操作
    在这里插入图片描述
    在这里插入图片描述

    窄依赖:
    一对一 或者 多对一
    在这里插入图片描述

    在这里插入图片描述

    宽依赖:
    一对多
    在这里插入图片描述

    窄依赖可以进行流水线优化,宽依赖不可以
    优化:fork/join 机制
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    一个作业可以划分成多个阶段 每个阶段都是一次fork/join,多次fork/join就是宽依赖
    一个作业也可以直接一个阶段完成,这就是窄依赖
    宽依赖:有shuffle操作的时候 需要落到磁盘,需要等待,没有办法形成管道型的流水化处理。

    在这里插入图片描述

    RDD的运行过程:
    在这里插入图片描述

    展开全文
  • 前言:前面我们讲过,RDD转化Transformation...先不说概念,看个例子:请问图(1)图(2)在对RDD的依赖上有什么区别呢?(1)filter并不依赖map()生成RDD所有分区,也就是说即使map没有全部完成我也可以开始filte...
  • 在一个程序里面产生宽依赖和窄依赖的RDD是分父RDD和子RDD的,其中父RDD和子RDD是相对而言, 相邻两个RDD处理之前是父RDD,处理之后就是子rdd,具体你用的什么算子产生没有产生shuffle就是会出现宽依赖和窄依赖的现象. 宽...
  • 一、什么是宽依赖、窄依赖 Spark中RDD的高效与DAG(有...那么到底什么是宽依赖和窄依赖的? 1、宽依赖:是指1个父RDD分区对应多个子RDD的分区 2、窄依赖:是指一个或多个父RDD分区对应一个子RDD分区 简单的说就...
  • 1.宽依赖和窄依赖操作算子的区别 2.宽依赖和窄依赖类型区别 二、概念 1.窄依赖 (1)概念 子RDD的每个分区的数据来自常数个父RDD分区;父RDD的每个分区的数据到子RDD的时候在一个分区中进行处理。即,父...
  • 依赖和依赖的作用:一是容错,二是宽依赖作为stage的划分点。 如果是窄依赖,子分区若是出错,其父rdd数据已丢失,那么只需重新计算子分区依赖的若干个父分区就行。 如果是宽依赖,子分区若是出错,其父rdd...
  • 2.宽依赖和窄依赖 3.宽依赖与窄依赖之间对比 1.血统概念 利用内存加快数据加载,在众多其它In-Memory类数据库或Cache类系统中也有实现,Spark主要区别在于它处理分布式运算环境下数据容错性(节点实效/...
  • 窄依赖和宽依赖

    千次阅读 2018-07-23 14:07:55
    目录: 一.简介 二.区别 三.stage划分 ...针对不同转换函数,RDD之间依赖关系分类窄依赖(narrow dependency)和宽依赖(wide dependency, 也称 shuffle dependency) 二.区别 窄依...
  • Spark中RDD之间的依赖关系有哪些?它们的区别是什么?各自对应的算子有哪些?------面试题? Spark中RDD的高效与DAG...RDD之间的依赖关系分为两种,宽依赖(wide dependency/shuffle dependency)和窄依赖(narrow...
  • RDD的依赖关系、缓存, DAG的生成以及shuffle的过程RDD的依赖窄依赖宽依赖Lineage(血统)RDD的缓存RDD缓存方式Spark RDD CacheRDD cache使用cachepersist的区别DAG的生成以及shuffle的过程什么是DAGshuffle的过程...
  • 1、宽依赖和窄依赖 1、区别 窄依赖:对于一个父rdd,子rdd一个分区只依赖其一个分区。 窄依赖允许在一个集群节点上以流水线方式(pipeline)计算所有父分区。 算子:map、union、map join和broadcast ...
  • 文章目录算子总结mapmapPartitions的区别mapforeach的区别:foreachforeachPartition的区别:RDD类型RDD依赖关系窄依赖宽依赖join有时宽依赖有时窄依赖 算子总结 mapmapPartitions的区别 map是处理RDD里的每个...
  • 1. RDD的依赖 1.1. 窄依赖 1.2. 宽依赖 1.3. 为什么要设计宽窄依赖 1.4. Lineage(血统) 2. RDD的缓存 2.1 RDD的缓存方式 2.2 Spark RDD Cache 2.3 RDD Cache的使用 2.4 cachepersist的区别 3. RDD的CheckPoint
  • 简单 解析spark RDD

    2018-12-02 21:18:07
    弹性分布式数据集 RDD(只读,可分区) 这个数据集的部分或者全部可以缓存在内存中。...宽依赖和窄依赖的区别:narrow dependecies 可以支持同一个cluster node 还是哪个以pipeline形式执行多条命...
  • 一、PV和UV是怎么计算,UV怎么进行去重?不用ES该如何实现去重?...三、讲一讲spark调度执行逻辑,stage,宽依赖和窄依赖,容错机制 ? 这部分由于内容太多,只提供部分重点答案。 1.调度执行逻辑:...
  • 宽依赖和窄依赖的一个重要区别是有无shuffle 根据宽依赖来进行stage划分 在DAG中进行反向解析, 遇到宽依赖就断开, 遇到窄依赖就把当前的RDD加入到当前的阶段中 虽然知道了, 但是好像跟背书没什么区别. 还是得知...
  • Spark:shuffle原理

    千次阅读 2018-10-02 00:03:16
    shuffle stage shuffle 是划分 DAG 中 stage 的标识,同时影响 Spark 执行速度的关键步骤.  RDD 的 ...窄依赖跟宽依赖的区别是是否发生 shuffle(洗牌) 操作.宽依赖会发生 shuffle 操作. 窄依赖是子 ...
  • 宽依赖父RDD每个分区都回最多被子类一个RDD所使用 窄依赖父RDD每个分区会被多个子类RDD分区所使用 dataset datastream 区别 1.keyBy = groupBy() 根据keyhash值进行分组聚合 datastream spark ...
  • 1、hive接触过哪些文件存储类型,text的优劣、列式存储的好处、...7、宽依赖和窄依赖的理解* shuffle、stage,发生shuffle就会划分stage,产生宽依赖 8、日志数据、交易数据的数据量 9、数仓的理解,我从分层角度回答、
  • Hadoop与Spark基本原理

    千次阅读 2019-05-03 15:08:46
    Spark 宽依赖和窄依赖 Spark RDD运行过程 Spark RDD阶段划分 Hadoop Hadoop是Apache软件基金旗下一个开源分布式计算平台,为用户提供系统底层细节透明分布式基础架构,基于Java开发,有很好跨平台性,并且...
  • 为什么8 rdd 怎么分区宽依赖和窄依赖9 spark streaming 读取kafka数据的两种方式Receiver-baseDirect10 kafka的数据存在内存还是磁盘12 fsimage和edit的区别?13 列举几个配置文件优化?14 datanode 首次加入 ...
  • 文章大纲基础spark集群运算模式RDDRDD中reduceBykey与groupByKey哪个性能好,为什么rdd 怎么分区宽依赖和窄依赖简述Spark宽窄依赖,以及Spark如何划分stage,每个stage又根据什么决定task个数?Dataframe其他...
  • Spark RDD 介绍

    2020-02-16 22:31:58
    专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文... Stage 划分宽依赖窄依赖如何划分 Stage3. RDD 的缓存cache persist 的区别cache checkPoint 的区别persist checkPoin...
  • papal面试

    2020-12-17 22:09:41
    spark宽依赖和窄依赖区别 哪些是action算子,哪些是 map和mappartition区别 mappartition和foreachPattition区别 如何保证数据结构安全:可见性,原子性,指令重排序 volitile理解 如何保证线程安全 重量级锁轻量...
  • Spark 知识点

    2020-05-09 11:06:40
    RDD:弹性分布式数据集spark运行原理:spark任务划分:spark宽依赖和窄依赖:spark转换算子和行动算子:reduceByKey(func)和groupByKey()的区别:spark数据倾斜:出现数据倾斜的原因:工作时我的应对:解决方案:spark优化:...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

宽依赖和窄依赖的区别