shuffle过程理解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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函数。

本文出自 “简答生活” 博客,转载请与作者联系!

以上是关于shuffle过程理解的主要内容,如果未能解决你的问题,请参考以下文章

Spark Shuffle理解

map/reduce之间的shuffle,partition,combiner过程的详解

map/reduce之间的shuffle,partition,combiner过程的详解

Mapreduce详解Shuffle过程

[转]MapReduce:详解Shuffle过程

MapReduce Shuffle过程详解