现在的位置: 首页 > web前端 > 正文

shuffle什么意思作用

2020年07月16日 web前端 ⁄ 共 795字 ⁄ 字号 评论关闭

  Shuffle的正常意思是洗牌或弄乱,Shuffle描述着数据从maptask输出到reducetask输入的这段过程。partition,是划分,分区,归类,是shuffle的一部分。


  shuffle什么意思


  shuffle阶段的主要函数是fetchOutputs(),这个函数的功能就是将map阶段的输出,copy到reduce节点本地。


  combine和partition都是函数,中间的步骤应该只有shuffle!


  combine分为map端和reduce端,作用是把同一个key的键值对合并在一起,可以自定义的。


  combine函数把一个map函数产生的<key,value>对(多个key,value)合并成一个新的<key2,value2>.将新的<key2,value2>作为输入到reduce函数中


  这个value2亦可称之为values,因为有多个。这个合并的目的是为了减少网络传输。


  shuffle作用有什么意思


  partition是分割map每个节点的结果,按照key分别映射给不同的reduce,也是可以自定义的。这里其实可以理解归类。


  我们对于错综复杂的数据归类。比如在动物园里有牛羊鸡鸭鹅,他们都是混在一起的,但是到了晚上他们就各自牛回牛棚,羊回羊圈,鸡回鸡窝。partition的作用就是把这些数据归类。只不过在写程序的时候,mapreduce使用哈希HashPartitioner帮我们归类了。这个我们也可以自定义。


  shuffle就是map和reduce之间的过程,包含了两端的combine和partition。


  Map的结果,会通过partition分发到Reducer上,Reducer做完Reduce操作后,通过OutputFormat,进行输出。


  总之,shuffle什么意思给大家简单的介绍了一些,希望大家多看看。

抱歉!评论已关闭.