MapReduce:詳解Shuffle過程 - 每天一小步 - ITeye技術(shù)網(wǎng)站
http://langyu.iteye.com/blog/992916
Shuffle過程是MapReduce的核心,也被稱為奇跡發(fā)生的地方。要想理解MapReduce, Shuffle是必須要了解的。我看過很多相關(guān)的資料,但每次看完都云里霧里的繞著,很難理清大致的邏輯,反而越攪越混。前段時(shí)間在做MapReduce job 性能調(diào)優(yōu)的工作,需要深入代碼研究MapReduce的運(yùn)行機(jī)制,這才對Shuffle探了個(gè)究竟。考慮到之前我在看相關(guān)資料而看不懂時(shí)很惱火,所以在這里我盡最大的可能試著把Shuffle說清楚,讓每一位想了解它原理的朋友都能有所收獲。如果你對這篇文章有任何疑問或建議請留言到后面,謝謝!
這張是官方對Shuffle過程的描述。但我可以肯定的是,單從這張圖你基本不可能明白Shuffle的過程,因?yàn)樗c事實(shí)相差挺多,細(xì)節(jié)也是錯(cuò)亂的。后面我會(huì)具體描述Shuffle的事實(shí)情況,所以這里你只要清楚Shuffle的大致范圍就成-怎樣把map task的輸出結(jié)果有效地傳送到reduce端。也可以這樣理解, Shuffle描述著數(shù)據(jù)從map task輸出到reduce task輸入的這段過程。
與 Hadoop 對比,如何看待 Spark 技術(shù)? - 大數(shù)據(jù) - 知乎
https://www.zhihu.com/question/26568496
Sort和Shuffle是MapReduce上最核心的操作之一,比如上千個(gè)Mapper之后,按照Key將數(shù)據(jù)集分發(fā)到對應(yīng)的Reducer上,要走一個(gè)復(fù)雜的過程,要平衡各種因素。