map:對每一部分進行處理
reduce :彙總map結果
map是MapReduce最核心的。
一種分布式計算模型,解決海量資料計算問題
MapReduce把整個并行計算的過程抽象到兩個函數,map和reduce函數。 map(映射):對一些獨立元素組成的清單的每一個元素進行指定操作,可以高度并行。(10T分解分解成1T ,1t就是獨立元素) Reduce(化簡):對一個清單的元素進行合并。 一個簡單的mapreduce程式隻需要指定map(),reduece(),input和output,剩下的事就是mapreduce架構的事。
put--map-reduce-output
在put第一個環節,就把檔案以map key value形式處理了。當到第2,3,4環節map、的時候實際得到的是處理好的map key value資料。
map階段 map階段由一定數量的Maptask組成
資料資料的格式解析 InputFormat
資料資料處理 mapper
資料分組 partitioner
reduce階段 reduce階段由一定數量的reducetask組成
資料遠端copy
資料按需排序
資料處理 reducer
資料輸出格式 outputFormat
基于mapReduce模型編寫分布式并行程式非常簡單,程式員的主要編碼工作就是實作map和Reduce函數。 其他并行程式設計中種種複雜的問題,例如:分布式存儲、工作排程、負載、容錯、網絡通信,均由yarn架構處理。
公式:input--->map-->reduece->output
bin/hdfs dfs jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar input output
hadoop yarn --> <0,hadoop yarn>
hadoop mapreduce --> <11,hadoop mapreduce>
hadoop hdfs
yarn nodemanager
hadoop resourcemanager