1. 程式人生 > >Mapreduce執行任務過程

Mapreduce執行任務過程

1.把輸入的檔案邏輯切片,每個切片由一個maptask處理;

2.對切片中的資料按照一定的規格解析成鍵值對,預設規則是每一行解析成一對鍵值對;

3.每解析出呼叫一個kv呼叫一次map中的map方法,會輸出零個或者多個鍵值對;

4.按照一定的隊則,講輸出的鍵值對進行分割槽,分割槽的數量就是reducerTask的數量;

5.對每個分割槽中的鍵值對的key按照字典序進行排序,相同的key只會呼叫一次reducer中的方法;

6.reducer任務會主動從mapper任務複製其輸出的鍵值對,mapper任務可能會有很多,因此reducer會複製多個mapper的輸出;

7.把複製到reducer本地資料,全部進行合併,把分散的資料合併成一個大的資料,再對合並後的資料排序;

8.對排序胡的鍵值對呼叫reduce方法。鍵相同的鍵值對呼叫一次reduce方法,每次呼叫會產生零個或者多個鍵值對。最後把這些輸出的鍵值對寫入到HDFS檔案中。