Map Reduce核心之shuffle過程

2021-07-10 23:35:38 字數 425 閱讀 5445

重點內容!!!

1. 每個map有乙個環形記憶體緩衝區,用於儲存任務的輸出。預設大小100mb(io.sort.mb屬性),一旦達到閥值0.8(io.sort.spill.percent),乙個後台執行緒把內容寫到(spill)磁碟的指定目錄(mapred.local.dir)下的新建的乙個溢位寫檔案。

2. 寫磁碟前,要partition,sort。如果有combiner,combine排序後資料。

3. 等最後記錄寫完,合併全部溢位寫檔案為乙個分割槽且排序的檔案。

1. reducer通過http方式得到輸出檔案的分割槽。

2. tasktracker為分割槽檔案執行reduce任務。複製階段把map輸出複製到reducer的記憶體或磁碟。乙個map任務完成,reduce就開始複製輸出。

3. 排序階段合併map輸出。然後走reduce階段。

Map Reduce核心之shuffle過程

重點內容!1.每個map有乙個環形記憶體緩衝區,用於儲存任務的輸出。預設大小100mb io.sort.mb屬性 一旦達到閥值0.8 io.sort.spill.percent 乙個後台執行緒把內容寫到 spill 磁碟的指定目錄 mapred.local.dir 下的新建的乙個溢位寫檔案。2.寫磁...

MapReduce核心思想

mapreduce核心程式設計思想,如圖1 1所示。圖1 1 mapreduce核心程式設計思想 1 分布式的運算程式往往需要分成至少 2個階段。2 第乙個階段的 maptask 併發例項,完全並行執行,互不相干。3 第二個階段的 reducetask 併發例項互不相干,但是他們的資料依賴於上乙個階...

大資料核心技術之MapReduce基礎程式設計(實驗)

內容 假設乙個年級有兩個班級,資料分別在class1.csv和class2.csv中,求該年級的數學成績平均值。資料第一列為學號,第二列為數學成績。要求,必須使用combiner類,且最後輸出一行資料,該行僅有乙個平均值。public class 2 reduce public class myre...