16-hadoop-mapreduce簡介
阿新 • • 發佈:2017-06-24
沒有 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簡介