MapReduce 實驗 一 原理

2021-09-04 04:04:17 字數 1941 閱讀 5379

官網

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介面,使得可...