mapreduc原理

MAP階段
    執行map前需要將數據進行分片(將輸入數據切分成大小相同的數據塊),沒一塊作爲單個mapworker的輸入被處理,以便於多個map worker同時工作;分片完成後。多個map worker就可以同時工作,每個map worker在讀取各自的數據後,進行計算處理,最終輸出給reduce
Shuffle階段(合併排序和分配reduce):
    map worker在輸出數據時需要爲每一條輸出數據指定一個key,這個key值決定了這條數據將會被髮送到哪個reduce worker。key值和reduce worker是多對一(具有相同key值的數據將會被髮送到同一個reduce worker)
    在進入到recude階段之前,mapreduce框架會對數據按照key值排序,使得具有相同key的數據彼此相鄰,如果用戶指定了“合併操作”(Combiner),框架會調用combiner,使具有相同key的數據進行聚合
Reduce階段
    相同的key的數據會達到同一個reduce worker,同一個reduce worker會接收多個map reducer的數據,每個reduce worker會對key相同的數據進行reduce操作,最後,一個key的的多條數據經過reduce作用後,將變成一個值

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章