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
我们会将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?