shuffle过程理解

  1. shuffle是干什么用的?

    shuffle就是用来分组的或者是将相同关键字提取出来,分成一组,以[key,value1,value2..value]等的形式组成key ,value。

  2. shuffle包含了那些过程

    该过程包含了三个过程。partioner,merge。

    partioner(分区)是什么?

    partioner是用来指定分区的,它是根据reduce数量来指定相应的分区

    每个分区里面都是按照k2来进行排序的(排序的规则是:如果是字母就按照字典顺序a,ab,abc ,b,如果是数字,就按照顺序排,如果是自定义的k2,就按照自定义顺序来排序)。

    partioner阶段也有个合并,这个是针对map里面的分区合并。(1号分区数据在一起,2号分区数据一起。。。。。)这样数据是不是乱了,但是不至于很乱。

  3. combiners(合并)是什么?

    combiners是一个特殊的reduce,是一个本地的reducer。将其中的map里面的key值数量合并累加。

    map输出至partioner输出至combine(这个可以自己写)

  4. merge(合并)这里会在按照(k2)在进行排序

    merge是将多个map产生的分区数据在进行合并,(map1,的1号分区,map2,的1号分区。。。合并)以供给reduce阶段。

  5. 一台计算机可以运行1个至多个map函数。
时间: 2024-08-09 06:23:08

shuffle过程理解的相关文章

Spark 学习: spark 原理简述与 shuffle 过程介绍

Spark学习: 简述总结 Spark 是使用 scala 实现的基于内存计算的大数据开源集群计算环境.提供了 java,scala, python,R 等语言的调用接口. Spark学习 简述总结 引言 1 Hadoop 和 Spark 的关系 Spark 系统架构 1 spark 运行原理 RDD 初识 shuffle 和 stage 性能优化 1 缓存机制和 cache 的意义 2 shuffle 的优化 3 资源参数调优 4 小结 本地搭建 Spark 开发环境 1 Spark-Scal

MapReduce Shuffle过程详解

Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce,Shuffle是必须要了解的.我看过很多相关方面的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越乱.前端时间在做MapReduce job性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟.考虑到之前我在看相关资料而看不懂时很恼火,所以在这里我尽最大的可能试着把Shuffle说清楚,让每一位想了解它原理的朋友都能有所收获.如果你对这篇文章有

Hadoop学习之shuffle过程

转自:http://langyu.iteye.com/blog/992916,多谢分享,学习Hadopp性能调优的可以多关注一下 Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方,Shuffle的正常意思是洗牌或弄乱,可能大家更熟悉的是Java API里的Collections.shuffle(List)方法,它会随机地打乱参数list里的元素顺序.如果你不知道MapReduce里Shuffle是什么,那么请看这张图: 这张是官方对Shuffle过程的描述.但我可以肯定的是,

【转】MapReduce:详解Shuffle过程

——转自:{http://langyu.iteye.com/blog/992916} Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混.前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟.考虑到之前我在看相关资料而看不懂时很恼火,所以在这里我尽最大的可能

MapReduce:详解Shuffle过程

MapReduce:详解Shuffle过程[转] 博客分类: mapreduce MapreduceITeye数据结构多线程Hadoop Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混.前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟.考虑到之前我在

【转】mapreduce的shuffle过程

转自http://langyu.iteye.com/blog/992916 Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混.前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟.考虑到之前我在看相关资料而看不懂时很恼火,所以在这 里我尽最大的可能试着把S

MapReduce shuffle过程剖析及调优

更新记录 2017-07-18 初稿 MapReduce简介 在Hadoop MapReduce中,框架会确保reduce收到的输入数据是根据key排序过的.数据从Mapper输出到Reducer接收,是一个很复杂的过程,框架处理了所有问题,并提供了很多配置项及扩展点.一个MapReduce的大致数据流如下图: 更详细的MapReduce介绍参考Hadoop MapReduce原理与实例. Mapper的输出排序.然后传送到Reducer的过程,称为shuffle.本文详细地解析shuffle过

hadoop1——map到reduce中间的shuffle过程

---恢复内容开始--- shuffle和排序 过程图如下: MapReduce确保每个reduce的输入都按键排序,系统执行排序的过程——将map输出作为输入传给reduce——成为shuffle,理解shuffle的工作原理,有助于MapReduce程序的优化,因为shuffle属于不断被优化和改进的代码库的一部分,shuffle是MapReduce的心脏,是奇迹发生的地方 map端 map函数开始产生输出时,并不是简单的将它写到磁盘,这个过程非常复杂,它是利用缓冲的方式写到内存,并处于效率

[转]MapReduce:详解Shuffle过程

Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混.前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟.考虑到之前我在看相关资料而看不懂时很恼火,所以在这里我尽最大的可能试着把Shuffle说清楚,让每一位想了解它原理的朋友都能有所收获.如果你对这篇文章有