2023學(xué)年完整公開課版Shuffle詳解_第1頁
2023學(xué)年完整公開課版Shuffle詳解_第2頁
2023學(xué)年完整公開課版Shuffle詳解_第3頁
2023學(xué)年完整公開課版Shuffle詳解_第4頁
2023學(xué)年完整公開課版Shuffle詳解_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Shuffle詳解2學(xué)習(xí)任務(wù)了解MapReduce的執(zhí)行過程掌握Map和Reduce的shuffle過程3知識目標(biāo)什么是ShuffleShuffle在MapReduce的過程中負(fù)責(zé)什么任務(wù)01能力目標(biāo)了解MapReduce中的Shuffle過程了解Map的shuffle過程了解Map的shuffle過程02學(xué)習(xí)目標(biāo)4目錄01MapReduceShuffle02Map的shuffle過程03Reduce的shuffle過程5MapReduceShuffleMap是映射,負(fù)責(zé)數(shù)據(jù)的過濾分發(fā);Reduce是規(guī)約,負(fù)責(zé)數(shù)據(jù)的計(jì)算歸并。Reduce的數(shù)據(jù)來源于Map,Map的輸出即是Reduce的輸入,Reduce需要通過Shuffle來獲取數(shù)據(jù)。6MapReduceShuffle從Map輸出到Reduce輸入的整個(gè)過程可以廣義地稱為Shuffle。Shuffle橫跨Map端和Reduce端,在Map端包括Spill過程,在Reduce端包括copy和sort過程,如上圖所示。7Map的shuffle過程shuffle過程包括輸出(collect)、排序(sort)、溢寫(spill)、合并(merge)等步驟,如圖所示:8Map的shuffle過程輸出(collect)每個(gè)Map任務(wù)不斷地以對的形式把數(shù)據(jù)輸出到在內(nèi)存中構(gòu)造的一個(gè)環(huán)形數(shù)據(jù)結(jié)構(gòu)中。使用環(huán)形數(shù)據(jù)結(jié)構(gòu)是為了更有效地使用內(nèi)存空間,在內(nèi)存中放置盡可能多的數(shù)據(jù)。這個(gè)數(shù)據(jù)結(jié)構(gòu)其實(shí)就是個(gè)字節(jié)數(shù)組,叫Kvbuffer。9Map的shuffle過程排序(sort)先把Kvbuffer中的數(shù)據(jù)按照partition值和key兩個(gè)關(guān)鍵字升序排序,移動(dòng)的只是索引數(shù)據(jù),排序結(jié)果是Kvmeta中數(shù)據(jù)按照partition為單位聚集在一起,同一partition內(nèi)的按照key有序。10Map的shuffle過程溢寫(spill)Spill線程為這次Spill過程創(chuàng)建一個(gè)磁盤文件:從所有的本地目錄中輪訓(xùn)查找能存儲這么大空間的目錄,找到之后在其中創(chuàng)建一個(gè)類似于“spill12.out”的文件。Spill線程根據(jù)排過序的Kvmeta挨個(gè)partition的把數(shù)據(jù)吐到這個(gè)文件中,一個(gè)partition對應(yīng)的數(shù)據(jù)吐完之后順序地吐下個(gè)partition,直到把所有的partition遍歷完。一個(gè)partition在文件中對應(yīng)的數(shù)據(jù)也叫段(segment)。11Map的shuffle過程合并(merge)

Map任務(wù)如果輸出數(shù)據(jù)量很大,可能會進(jìn)行好幾次Spill,out文件和Index文件會產(chǎn)生很多,分布在不同的磁盤上。最后把這些文件進(jìn)行合并的merge過程閃亮登場。如前面的例子,“aaa”從某個(gè)maptask讀取過來時(shí)值是5,從另外一個(gè)map讀取時(shí)值是8,因?yàn)樗鼈冇邢嗤膋ey,所以得merge成group。什么是group。對于“aaa”就是像這樣的:{“aaa”,[5,8,2,…]}12Reduce的shuffle過程CopyReduce任務(wù)通過HTTP向各個(gè)Map任務(wù)拖取它所需要的數(shù)據(jù)。每個(gè)節(jié)點(diǎn)都會啟動(dòng)一個(gè)常駐的HTTPserver,其中一項(xiàng)服務(wù)就是響應(yīng)Reduce拖取Map數(shù)據(jù)。當(dāng)有MapOutput的HTTP請求過來的時(shí)候,HTTPserver就讀取相應(yīng)的Map輸出文件中對應(yīng)這個(gè)Reduce部分的數(shù)據(jù)通過網(wǎng)絡(luò)流輸出給Reduce。13Reduce的shuffle過程MergeSORT這里使用的Merge和Map端使用的Merge過程一樣。Map的輸出數(shù)據(jù)已經(jīng)是有序的,Merge進(jìn)行一次合并排序,所謂Reduce端的sort過程就是這個(gè)合并的過程。一般Reduce是一邊copy一邊sort,即copy和sort兩個(gè)階段是重疊而不是完全分開的。當(dāng)R

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論