mapreduce 是一種簡化平行計算的程式設計模型,用於大資料量的計算。它的核心思想是「分散任務,彙總結果」,將大規模資料集的操作分發給乙個主節點管理下的各個子節點共同完成,然後整合各個子節點的中間結果,從而得到最終結果。
mapreduce的優點:
1、便於程式設計:mapreduce 只需簡單地實現一些介面,便可以完成完成乙個分布式程式。
2、拓展性:可以通過新增機器來拓展它的計算能力。
3、高容錯性:當節點掛機,可以將計算任務轉移到另外一台節點上進行。
4、對大量級的資料進行離線處理。
缺點:1、實時計算差
2、不支援流式計算,資料來源必須是靜態的
mapreduce 程式設計模型
mapreduce 由兩個階段組成:map 和 reduce
reduce 階段由一定數量的reduce task組成
1、資料遠端拷貝(從 map task 的輸出拷貝部分資料)
2、資料按照key排序分組,可以相同的都存放在一起,按照key 進行分組,每一組交給reducer進行處理。
3、資料處理:reducer
4、資料輸出格式:outputformat(輸出的檔案格式、分隔符的設定)
使用者只需編寫map()和reduce() 兩個函式,即可完成簡單的分布式程式的設計。
map()函式以key/value對作為輸入,產生一系列的key/value對作為中間結果寫入到本地磁碟。mapreduce 框架會自動將這些中間資料按照key值進行聚集(預設是對key的hash值取模),相同key值的資料會被統一交給reduce()函式進行處理。
reduce()函式以key 對應的value 列表作為輸入,經合併key 相同的value 值後,產生一系列的key/value 對作為最終輸出寫入到hdfs。
MapReduce程式設計模型
計算採用一組輸入鍵 值對,並產生一組輸出鍵 值對。mapreduce庫的使用者將計算表達為兩個函式 map和reduce。input1 map a,1 b,1 c,1 input2 map b,1 input3 map a,1 c,1 reduce c,2 reduce b,2 reduce a,2...
MapReduce 程式設計模型
mapreduce 簡介 mapreduce 本身是一種支援並行運算的程式設計模型 思想 這個程式設計模型分為兩個階段 map 階段和 reduce 階段。hadoop 的 mapreduce 框架 hadoop 的 mapreduce 是實現 mapreduce 程式設計模型的乙個分布式計算框架,...
MapReduce 程式設計模型概述
可以帶著下面問題來閱讀 mapreduce的過程都包含什麼操作?map處理完後,tasktracer會完成什麼任務?ruducer的作用是什麼?map中經過誰的處理之後,變為reduce輸入?1.首先,我們能確定我們有乙份輸入,而且他的資料量會很大 2.通過split之後,他變成了若干的分片,每個分...