shuffle过程理解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shuffle过程理解相关的知识,希望对你有一定的参考价值。
shuffle是干什么用的?
shuffle就是用来分组的或者是将相同关键字提取出来,分成一组,以[key,value1,value2..value]等的形式组成key ,value。
shuffle包含了那些过程
该过程包含了三个过程。partioner,merge。
partioner(分区)是什么?
partioner是用来指定分区的,它是根据reduce数量来指定相应的分区
每个分区里面都是按照k2来进行排序的(排序的规则是:如果是字母就按照字典顺序a,ab,abc ,b,如果是数字,就按照顺序排,如果是自定义的k2,就按照自定义顺序来排序)。
partioner阶段也有个合并,这个是针对map里面的分区合并。(1号分区数据在一起,2号分区数据一起。。。。。)这样数据是不是乱了,但是不至于很乱。
combiners(合并)是什么?
combiners是一个特殊的reduce,是一个本地的reducer。将其中的map里面的key值数量合并累加。
map输出至partioner输出至combine(这个可以自己写)
merge(合并)这里会在按照(k2)在进行排序
merge是将多个map产生的分区数据在进行合并,(map1,的1号分区,map2,的1号分区。。。合并)以供给reduce阶段。
一台计算机可以运行1个至多个map函数。
本文出自 “简答生活” 博客,转载请与作者联系!
以上是关于shuffle过程理解的主要内容,如果未能解决你的问题,请参考以下文章
map/reduce之间的shuffle,partition,combiner过程的详解