千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  关于学院  >  技术干货  >  大数据技术干货  >  正文

Spark的shuffle过程和mr的shuffle过程的区别有哪些?

来源:千锋教育
作者:qyf
关键词: 南京 济南
2022-09-28
分享

Spark的shuffle过程和mr的shuffle过程的区别有哪些

  1. MR没有所谓的DAG划分,一次MR任务就意味着一次shufflfflffle;spark则是RDD驱动的,行动算子触发时才会按宽窄依赖划分阶段,只有宽依赖才会发生shuffle。

  2. MR在reduce端还会进行一次合并排序,spark则在map端就完成了排序,采用Tim-Sort排序算法。

  3. MR在reduce拉取的数据直接放磁盘再读,spark则是先放内存,放不下才放磁盘

  4. MR在数据拉取完毕后才开始计算,spark则是边拉边计算(reduceByKey原理)

  5. 基于以上种种原因,MR自定义分区器时往往还需要自定义分组,spark则不需要(或者说map结构已经是自定义分组了)。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

相关推荐

  • Hive MapJoin MapJoin 会生成两个Task, 首先启动一个任务扫描小表,生成HashTable数据结构文件,然后加载进分布式缓存 DistributeCache 中,第二个 Task 会扫描大表,然后根据大表中每一条数据中的关联字段去和DistributeCache 中的小表对应...
  • Hive窗口函数 窗口函数是用于分析用的一类函数,要理解窗口函数要先从聚合函数说起。 大家都知道聚合函数是将某列中多行的值合并为一行,比如sum、count等。 而窗口函数则可以在本行内做运算,得到多行的结果,即每一行对应一行的值。通用的窗口函数可以用下面的语法来概括:
  • Hive有搭建集群的必要吗? Hive作业的运行,资源调度是YARN,数仓存储是HDFS,他们两个都是分布式的集群。 对于Hive你可以简单理解成就是负责将你的SQL转换为MR,当然也提供元数据管理(metastore),我们使用Hive时只需要一个客户端即可,对于Hive MetaStore和HiveServer2服务,可以构建一个高可用的(HA)。
  • Spark的shuffle过程和mr的shuffle过程的区别有哪些? MR在reduce端还会进行一次合并排序,spark则在map端就完成了排序,采用Tim-Sort排序算法。基于以上种种原因,MR自定义分区器时往往还需要自定义分组,spark则不需要(或者说map结构已经是自定义分组了)。
  • HBase读流程:如果读缓存和写缓存的数据不一致,怎么返回? 因为HBase读时,先去查询写缓存MemStore,如果有则直接返回,如果写缓存MemStore没有时,则会去查询读缓存BlockCache,如果有就直接返回,没有将会读取对应HFile,并返回同时缓存BlockCache。
  • 在开发的时候有没有用过拉链表?拉链表的应用场景有哪些?怎么用的? 没有用过拉链表,因为我们的开发场景中暂时不设计,我这边可以就简单把我对拉链表的认知给说一下:首先拉链表是在面对处理的数据量比较大,且计算要求保留历史变更数据。其主要的核心在于通过设置两个字段作为数据是否有效性的开关(begin_date,end_date),这样做的目的是保证在表的数据,在某一个时间区间内(时间粒度得统一,月,日,时,分…)有且仅有一条有效的数据。