您好,登錄后才能下訂單哦!
怎樣理解MapReduce中shuffle,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
shuffle:簡單的名稱稱為 混洗。 事實上shuffle是一個非常非常簡單的概念。簡單點來說就是洗牌。
shuffle:按照固定的規則,就【key,value】而言。
由于之前一直都是使用的 Hadoop1 ,并未使用 Hadoop Yarn,所以有關shuffle的機制,還請參考最新的底層API
1 : 不管是在Map端,還是Reduce端,不管是Hadoop MapReduce 還是Storm 。 對于數據的內部處理,很多時候都需要
對于是底層的 內存和磁盤做出一個合理的取舍。
1 : 數據并不是簡單的把他直接的寫到了磁盤,這個過程比較復雜,他利用了緩沖的方式寫到了內存,并且出于效率上的考慮,進行了預排序。
2:每一個默認的Map任務都會有一個環形的緩存區。這個緩存區用來持有Map的輸出,我印象中是100M左右, 一旦達到的固定的必烈,那么就會把內容寫到磁盤之中,在寫磁盤的過程之中,Map輸出繼續被寫入到緩沖區。
3:在寫入到緩存區之前,會將這個數據進行一次分區和排序(這個分區和排序將會按照reduce的對應關系來生成)
4:關于這個分區的數據將通過Http的協議來傳遞給 Reduce端。
Reduce端口的第一個階段是:copy 階段,也就是說我們需要把數據從Map端口copy到Reduce端口。 如果Map的端口輸出相當的小,那么就會被復制到 Reduce端。
其次:在拉取到數據之后,我們將進入到了:排序的階段。 sort phase 階段,更恰當的來說,是一個合并的階段,因為排序的階段已經在Map 端口完成了。只需要在reduce端合并就可以了
對于MapReduce,之前我也是能實現類qq圈子算法,對于算法,我也是整本算法導論的人。而,如今卻忘的一干二凈。記憶會消失,不需要的事物會遺忘。
看完上述內容,你們掌握怎樣理解MapReduce中shuffle的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。