第一代 map reduce 原理簡析。網絡
不廢話,上圖。框架
上圖爲第一代map reduce原理圖。左側爲map階段,右側爲reduce階段。函數
map和reduce各爲一個進程。優化
先看左側map階段:spa
map的數據存在於HDFS中,通過input format後,讀入緩衝區,利用溢寫機制不斷將緩衝區中的數據寫到磁盤上。當全部數據都寫到磁盤上後,會進行一次merge合併,merge期間會進行排序。所以merge後的數據是有序的數據。
下面詳細說下map各個階段:線程
InputFormat:它是MR的基礎框架之一。主要有兩個做用:數據分割split以及記錄讀取器。code
map部分大概這麼多,咱們常說的shuffle階段,包括:partition、sort、spill、merge、combiner、copy、memory、disk...常常狀況下,進行優化的部分就是shuffle階段。orm
再看看右側reduce階段:blog
reduce階段相對來講簡單些。排序
下面有幾個小點:
在map reduce1.0中,由兩個重要進程:
JobTracker:主進程。
TaskTracker:任務進程。
mapreduce做業調度默認採用先進先出隊列調度模式(FIFO):