天天看點

并行計算架構MapReduce程式設計模型

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

繼續閱讀