怎样理解MapReduce中shuffle
云計算
怎樣理解MapReduce中shuffle,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
概念解釋:
shuffle:簡單的名稱稱為 混洗。 事實上shuffle是一個非常非常簡單的概念。簡單點來說就是洗牌。
shuffle:按照固定的規(guī)則,就【key,value】而言。
前提
由于之前一直都是使用的 Hadoop1 ,并未使用 Hadoop Yarn,所以有關shuffle的機制,還請參考最新的底層API
1 : 不管是在Map端,還是Reduce端,不管是Hadoop MapReduce 還是Storm 。 對于數(shù)據(jù)的內部處理,很多時候都需要
對于是底層的 內存和磁盤做出一個合理的取舍。
Map端:
1 : 數(shù)據(jù)并不是簡單的把他直接的寫到了磁盤,這個過程比較復雜,他利用了緩沖的方式寫到了內存,并且出于效率上的考慮,進行了預排序。
2:每一個默認的Map任務都會有一個環(huán)形的緩存區(qū)。這個緩存區(qū)用來持有Map的輸出,我印象中是100M左右, 一旦達到的固定的必烈,那么就會把內容寫到磁盤之中,在寫磁盤的過程之中,Map輸出繼續(xù)被寫入到緩沖區(qū)。
3:在寫入到緩存區(qū)之前,會將這個數(shù)據(jù)進行一次分區(qū)和排序(這個分區(qū)和排序將會按照reduce的對應關系來生成)
4:關于這個分區(qū)的數(shù)據(jù)將通過Http的協(xié)議來傳遞給 Reduce端。
Reduce端:
Reduce端口的第一個階段是:copy 階段,也就是說我們需要把數(shù)據(jù)從Map端口copy到Reduce端口。 如果Map的端口輸出相當?shù)男。敲淳蜁粡椭频?Reduce端。
其次:在拉取到數(shù)據(jù)之后,我們將進入到了:排序的階段。 sort phase 階段,更恰當?shù)膩碚f,是一個合并的階段,因為排序的階段已經(jīng)在Map 端口完成了。只需要在reduce端合并就可以了
對于MapReduce,之前我也是能實現(xiàn)類qq圈子算法,對于算法,我也是整本算法導論的人。而,如今卻忘的一干二凈。記憶會消失,不需要的事物會遺忘。
看完上述內容,你們掌握怎樣理解MapReduce中shuffle的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!
總結
以上是生活随笔為你收集整理的怎样理解MapReduce中shuffle的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 部署https后浏览器提示不安全,不出现
- 下一篇: 云服务器选择Linux系统好用还是选择W