1. 程式人生 > >16-hadoop-mapreduce簡介

16-hadoop-mapreduce簡介

沒有 size 需求 val reduce 進行 light mapper merger

mapreduce是hadoop的核心組件, 設計理念是移動計算而不是移動數據,

mapreduce的思想是‘分而治之‘, 將復雜的任務分解成幾個簡單的任務去執行

1, 數據和計算規模大大減少
2, 就近計算, 移動計算
3, 小任務並行計算, 彼此間沒有依賴

  

共分為4個步驟:

技術分享

1, split

切分blcok, 切分為數據片段, split0, split1, split2

計算公式為:

技術分享

2, map

自定義的程序, 根據業務需求來的,

map任務的多少, 根據碎片的多少來的, 即上一步切分為多少個split , 每個split位一個線程, split傳遞的數據為 key-value的形式, 輸出形式也為鍵值對

技術分享

相同key的數據, 輸出為一組數據, 然後將數據進行下一步, 洗牌(sharp)

3, shuffler

包括 sort 和 merger, 把mapper輸出的的數據進行切分, 排序, 組合等操作, 吧key符合某種範圍的輸出到特定的reducer那裏

技術分享

過程為:

技術分享

4, reduce

reduce的數量, 技術分享

一個mapreduce 默認 只有一個reduce , 可通過配置分區數來更改reduce的數量

16-hadoop-mapreduce簡介