1. 程式人生 > >MR基本的運作流程

MR基本的運作流程

一個 一行 輸入 其中 input reduce span 運行 數據

MapReduce的核心是:分而治之,並行處理;以及其調度和處理數據的自動化。

MR中主要是Map和Reduce兩個階段,其中基本流程是:

  1、mr的數據處理單位是一個split,一個split對應一個map任務,處理時會有多個map任務同時運行;當map從HDFS上讀取一個split時,這裏會有“移動計算,不移動數據”的機制來減少網絡的數據傳輸,使得效率能最大化;

  2、獲取到split時,默認會以TextInputFormat的格式讀入,文件中的字符位置的偏移量作為 key,以及每一行的數據作為 value;

  3、之後則進入map函數中進行處理,這個階段可以獲取需要的數據並加以處理,並以key value的形式寫出,作為後面reduce函數的輸入;

  4、map到reduce之間會有一個shuffle的過程,大致過程是把不同key利用partitioner分散到各個reduce節點上去;

  5、在reduce上會先通過 比較排序(前面shuffl會有預排序) 進行文件的歸並,之後進行reduce函數,在每個reduce函數中key是唯一的,對應的value則是一個 Iterable接口類型,通過Iterable可以遍歷所有當前key對應的所有value;

  6、之後在reduce中對數據進行處理後,利用OutputFormat對處理後的key value保存到HDFS上即完成了整個流程。

MR基本的運作流程