小編給大家分享一下Hadoop中的Shuffle是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,林甸企業(yè)網(wǎng)站建設,林甸品牌網(wǎng)站建設,網(wǎng)站定制,林甸網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,林甸網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
Shuffle描述著數(shù)據(jù)從Map Task輸出到Reduce Task輸入的這段過程。
Map端:
1、每個Map有一個環(huán)形內(nèi)存緩沖區(qū),用于存儲任務的輸出,默認大小100MB(io.sort.mb屬性),一旦達到閥值
0.8(io.sort.spill.percent),一個后臺線程把內(nèi)容寫到(spill)磁盤的指定目錄(mapred.local.dir)下的新建的一個
溢出文件。
2、在寫入磁盤前,要Partitioner,Sort,如果有Combiner(聚合),Combiner排序后在寫入數(shù)據(jù)。
3、等最后把記錄寫完,合并全部溢出寫文件為一個分區(qū)且排序的文件。
Reduce端:
1、Reduce通過Http方式得到輸出的文件的分區(qū)。
2、TaskTracker為分區(qū)文件運行Reduce任務。復制階段把Map輸出復制到Reduce的內(nèi)存或磁盤。一個Map任 務完成,Reduce就開始復制輸出。
3、排序階段合并Map輸出,然后走Reduce階段。
注意:在有些情況下,也有可能沒有任何的Reduce,當前數(shù)據(jù)處理可以完全并行時,即無需混洗(shuffle),可能
會出現(xiàn)無Reduce任務的情況,在這種情況下,唯一的非本地節(jié)點數(shù)據(jù)傳輸是Map任務將結果寫入HDFS.
以上是“Hadoop中的Shuffle是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!