官網
hadoop三大元件
hdfs:分布式儲存系統
mapreduce:分布式計算系統
docs/r2.8.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapreducetutorial.html
yarn: hadoop 的資源排程系統
docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/yarn.html
回想起以前做過乙個中鐵軌道雷射測量軌道平整的專案,一段50km的資料庫大小是400g,光是找空間複製出來就是頭大,現在有了分布式的資料庫和計算平台就可以非常方便的進行。
對映器將輸入鍵/值對對映到一組中間鍵/值對中。
應用程式可以使用計數器報告其統計資料。
reducer
shuffle洗牌
partitioner分割槽
counter計數器
如果那個400g的資料庫還在,分成400個任務,每個任務進行1g左右資料處理,理論上速度是原來的400倍。
具體請參考google mapreduce
mapreduce如何工作
讓我們用乙個例子來理解這一點 –
假設有以下的輸入資料到 mapreduce 程式,統計以下資料中的單詞數量:
mapreduce 任務的最終輸出是:
bad
class
good
hadoop
is to
welcome
這些資料經過以下幾個階段
輸入拆分:
輸入到mapreduce工作被劃分成固定大小的塊叫做 input splits ,輸入折分是由單個對映消費輸入塊。
這是在 map-reduce 程式執行的第乙個階段。在這個階段中的每個分割的資料被傳遞給對映函式來產生輸出值。在我們的例子中,對映階段的任務是計算輸入分割出現每個單詞的數量(更多詳細資訊有關輸入分割在下面給出)並編制以某一形式列表《單詞,出現頻率》
重排這個階段消耗對映階段的輸出。它的任務是合併對映階段輸出的相關記錄。在我們的例子,同樣的詞彙以及它們各自出現頻率。
reducing
在這一階段,從重排階段輸出值彙總。這個階段結合來自重排階段值,並返回乙個輸出值。總之,這一階段彙總了完整的資料集。
在我們的例子中,這個階段彙總來自重排階段的值,計算每個單詞出現次數的總和。
mapreduce如何組織工作?
hadoop 劃分工作為任務。有兩種型別的任務:
map 任務 (分割及對映)
reduce 任務 (重排,還原)
如上所述
完整的執行流程(執行 map 和 reduce 任務)是由兩種型別的實體的控制,稱為
jobtracker : 就像乙個主(負責提交的作業完全執行)
多工*** : 充當角色就像從機,它們每個執行工作
對於每一項工作提交執行在系統中,有乙個 jobtracker 駐留在 namenode 和 datanode 駐留多個 tasktracker。
MapReduce工作原理
本文的目錄 1.mapreduce作業執行流程 2.map reduce任務中shuffle和排序的過程 mapreduce作業詳細的執行流程 流程分析 1.在客戶端啟動乙個作業。2.向jobtracker請求乙個job id。3.將執行作業所需要的資源檔案複製到hdfs上,包括mapreduce程...
map reduce工作原理
下面的圖來自南京大學計算機系黃宜華老師開設的mapreduce課程的課件,這裡稍作整理和 總結。本文旨在對接觸了mapreduce之後,但是對mapreduce的工作流程仍不是很清楚的人員,當然包括博主自己,希望與大家一起學習。mapreduce借鑑了函式式程式語言lisp中的思想,lisp lis...
MapReduce工作原理
map reduce框架的運作完全基於對,即資料的輸入是一批對,生成的結果也是一批對,只是有時候它們的型別不一樣而已。key和value的類由於需要支援被序列化 serialize 操作,所以它們必須要實現writable介面,而且key的類還必須實現writablecomparable介面,使得可...