天天看點

MappReduce工作流程

MappReduce工作流程

1.待處理文本

2.用戶端submit()前擷取待處理資料資訊,然後根據參數設定,形成一個任務配置設定的規劃,切片資訊

3.送出切片資訊

job.split

wc.jar

job.xml

4.yarn RM 計算出maptask的數量 Mr appmaster nodemastask數量

拿到的是切片資訊,多少個切片,就有多少個maptask

5.預設TextInputFormat

maptask 發出inputFormat —> RecordReader (流的拷貝)

傳回 K-V對

6. Mapper邏輯運算 map(K,V) context.write(k,v) ----> outputCollector

7. 向環形緩沖區寫入<K,V>資料

MappReduce工作流程

一端是中繼資料索引(key-value-reduceTypenum:大小,長度,格式),一端是資料,預設是100M,達到80%反向,溢寫資料

8.分區,實際是對索引的分區,分區内容的排序,對key進行排序,預設是字典排序,字典排序過程中是使用的快速排序

9.溢寫檔案(分區且區内有序) 環形再往回寫 循環

很多次溢寫,隻要達到80%,

10.合并merge 歸并排序

MappReduce工作流程

多次溢寫

MappReduce工作流程
MappReduce工作流程

1.所有map結束

MappReduce工作流程

maptask不能小于分區數

拷貝自己處理分區的資料

先放到記憶體中,進行歸并排序

MappReduce工作流程

優化重點:拷貝過來記憶體不夠,寫進磁盤,自己優化記憶體

MappReduce工作流程
上一篇: 位元組流