首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

MapReduce为何shuffle

2012-12-24 
MapReduce为什么shufflemapreduce有一个shuffle过程,但是以前一直没有关注,也不清楚为什么有这样一个过程,

MapReduce为什么shuffle

mapreduce有一个shuffle过程,但是以前一直没有关注,也不清楚为什么有这样一个过程,今天在阅读Hadoop in Action的时候,看到了其中关于shuffle的介绍,结合自己的实际运用以及理解,明白了为什么需要shuffle,以wordcount为例,我们会将documentSet中的不同document放入不同的机器,即放入cluster中,当第一阶段处理完成,即这个cluster中的node完成对本身包含的document的处理之后(独立的),会把结果sendToSecondPhase,如果secondphase是单台机器,那么If the documents are all stored in one central storage server, then the bottleneck?? is in the bandwidth of that server.所以我们肯定会将firstphase的结果发送给secondpharse集群,这样才是合理的,不会产生bottleneck,但是第一步的结果如何发送给第二步呢?以wordcount为例,我们会把第一步的结果shuffle,比如pharse_two_a机器会处理以a开头的所有第一步的处理结果,即第一步shuffle之后,会按照语法表与secondpharse的cluster的处理规则来发送结果,wordcount中第一步处理完成之后,shuffle过程即把a开头的发送给pharse_two_a机器,b开头的发送给pharse_two_b机器,c开头的发送给pharse_two_c机器·········,这样就完成了用集群来处理第一步处理完成的结果。Each machine in
phase one will shuf?? e?? its results among the machines in phase two

1 楼 ddvk2007 2012-09-05   我想請問
我们会将documentSet中的不同document放入不同的机器,即放入cluster中,当第一阶段处理完成,即这个cluster中的node完成对本身包含的document的处理之后(独立的)

你這裡指的第一階段完成是指哪一個階段呢?
如果以wordcount為例的話,會區分三個工作階段
map→shuffle→reduce 你這裡指的階段是指map嗎?

再來就是
我们会把第一步的结果shuffle,比如pharse_two_a机器会处理以a开头的所有第一步的处理结果,即第一步shuffle之后,会按照语法表与secondpharse的cluster的处理规则来发送结果,wordcount中第一步处理完成之后,shuffle过程即把a开头的发送给pharse_two_a机器,b开头的发送给pharse_two_b机器,c开头的发送给pharse_two_c机器

這裡的意思是說,你確定shuffle抓取key的機制是用字母的順序來區分嗎?
因為當處理的文件,執行到shuffle的階段時,shuffle會隨機抓取key的來做自述的統計,如果以單存以字母來區分的話,難道不會抓取到同樣的key嗎?

热点排行