怎樣理解MapReduce中shuffle,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
專注于為中小企業(yè)提供網(wǎng)站設(shè)計、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)永吉免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
shuffle:簡單的名稱稱為 混洗。 事實(shí)上shuffle是一個非常非常簡單的概念。簡單點(diǎn)來說就是洗牌。
shuffle:按照固定的規(guī)則,就【key,value】而言。
由于之前一直都是使用的 Hadoop1 ,并未使用 Hadoop Yarn,所以有關(guān)shuffle的機(jī)制,還請參考最新的底層API
1 : 不管是在Map端,還是Reduce端,不管是Hadoop MapReduce 還是Storm 。 對于數(shù)據(jù)的內(nèi)部處理,很多時候都需要
對于是底層的 內(nèi)存和磁盤做出一個合理的取舍。
1 : 數(shù)據(jù)并不是簡單的把他直接的寫到了磁盤,這個過程比較復(fù)雜,他利用了緩沖的方式寫到了內(nèi)存,并且出于效率上的考慮,進(jìn)行了預(yù)排序。
2:每一個默認(rèn)的Map任務(wù)都會有一個環(huán)形的緩存區(qū)。這個緩存區(qū)用來持有Map的輸出,我印象中是100M左右, 一旦達(dá)到的固定的必烈,那么就會把內(nèi)容寫到磁盤之中,在寫磁盤的過程之中,Map輸出繼續(xù)被寫入到緩沖區(qū)。
3:在寫入到緩存區(qū)之前,會將這個數(shù)據(jù)進(jìn)行一次分區(qū)和排序(這個分區(qū)和排序?qū)凑誶educe的對應(yīng)關(guān)系來生成)
4:關(guān)于這個分區(qū)的數(shù)據(jù)將通過Http的協(xié)議來傳遞給 Reduce端。
Reduce端口的第一個階段是:copy 階段,也就是說我們需要把數(shù)據(jù)從Map端口copy到Reduce端口。 如果Map的端口輸出相當(dāng)?shù)男?,那么就會被?fù)制到 Reduce端。
其次:在拉取到數(shù)據(jù)之后,我們將進(jìn)入到了:排序的階段。 sort phase 階段,更恰當(dāng)?shù)膩碚f,是一個合并的階段,因?yàn)榕判虻碾A段已經(jīng)在Map 端口完成了。只需要在reduce端合并就可以了
對于MapReduce,之前我也是能實(shí)現(xiàn)類qq圈子算法,對于算法,我也是整本算法導(dǎo)論的人。而,如今卻忘的一干二凈。記憶會消失,不需要的事物會遺忘。
看完上述內(nèi)容,你們掌握怎樣理解MapReduce中shuffle的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
標(biāo)題名稱:怎樣理解MapReduce中shuffle
當(dāng)前網(wǎng)址:http://aaarwkj.com/article12/gjgjgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、ChatGPT、定制網(wǎng)站、、做網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)