您好,登錄后才能下訂單哦!
官網(wǎng)
http://hadoop.apache.org/
hadoop三大組件
HDFS:分布式存儲(chǔ)系統(tǒng)
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html
MapReduce:分布式計(jì)算系統(tǒng)
http://hadoop.apache.org/docs/r2.8.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html
YARN: hadoop 的資源調(diào)度系統(tǒng)
http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/YARN.html
回想起以前做過(guò)一個(gè)中鐵軌道激光測(cè)量軌道平整的項(xiàng)目,一段50KM的數(shù)據(jù)庫(kù)大小是400G,光是找空間復(fù)制出來(lái)就是頭大,現(xiàn)在有了分布式的數(shù)據(jù)庫(kù)和計(jì)算平臺(tái)就可以非常方便的進(jìn)行。
Mapper
映射器將輸入鍵/值對(duì)映射到一組中間鍵/值對(duì)中。
應(yīng)用程序可以使用計(jì)數(shù)器報(bào)告其統(tǒng)計(jì)數(shù)據(jù)。
Reducer
Shuffle洗牌
Partitioner分區(qū)
Counter計(jì)數(shù)器
其實(shí)MapReduce講的就是分而治之的程序處理理念,把一個(gè)復(fù)雜的任務(wù)劃分為若干個(gè)簡(jiǎn)單的任務(wù)分別來(lái)做。另外,就是程序的調(diào)度問(wèn)題,哪些任務(wù)給哪些Mapper來(lái)處理是一個(gè)著重考慮的問(wèn)題。MapReduce的根本原則是信息處理的本地化,哪臺(tái)PC持有相應(yīng)要處理的數(shù)據(jù),哪臺(tái)PC就負(fù)責(zé)處理該部分的數(shù)據(jù),這樣做的意義在于可以減少網(wǎng)絡(luò)通訊負(fù)擔(dān)。最后補(bǔ)上一副經(jīng)典的圖來(lái)做最后的補(bǔ)充,畢竟,圖表往往比文字更有說(shuō)服力。
如果那個(gè)400G的數(shù)據(jù)庫(kù)還在,分成400個(gè)任務(wù),每個(gè)任務(wù)進(jìn)行1g左右數(shù)據(jù)處理,理論上速度是原來(lái)的400倍。
具體請(qǐng)參考google mapreduce
https://wenku.baidu.com/view/1aa777fd04a1b0717fd5dd4a.html
MapReduce如何工作
讓我們用一個(gè)例子來(lái)理解這一點(diǎn) –
假設(shè)有以下的輸入數(shù)據(jù)到 MapReduce 程序,統(tǒng)計(jì)以下數(shù)據(jù)中的單詞數(shù)量:
Welcome to Hadoop Class
Hadoop is good
Hadoop is bad
MapReduce 任務(wù)的最終輸出是:
bad
1
Class
1
good
1
Hadoop
3
is
2
to
1
Welcome
1
這些數(shù)據(jù)經(jīng)過(guò)以下幾個(gè)階段
輸入拆分:
輸入到MapReduce工作被劃分成固定大小的塊叫做 input splits ,輸入折分是由單個(gè)映射消費(fèi)輸入塊。
映射 - Mapping
這是在 map-reduce 程序執(zhí)行的第一個(gè)階段。在這個(gè)階段中的每個(gè)分割的數(shù)據(jù)被傳遞給映射函數(shù)來(lái)產(chǎn)生輸出值。在我們的例子中,映射階段的任務(wù)是計(jì)算輸入分割出現(xiàn)每個(gè)單詞的數(shù)量(更多詳細(xì)信息有關(guān)輸入分割在下面給出)并編制以某一形式列表<單詞,出現(xiàn)頻率>
重排
這個(gè)階段消耗映射階段的輸出。它的任務(wù)是合并映射階段輸出的相關(guān)記錄。在我們的例子,同樣的詞匯以及它們各自出現(xiàn)頻率。
Reducing
在這一階段,從重排階段輸出值匯總。這個(gè)階段結(jié)合來(lái)自重排階段值,并返回一個(gè)輸出值??傊@一階段匯總了完整的數(shù)據(jù)集。
在我們的例子中,這個(gè)階段匯總來(lái)自重排階段的值,計(jì)算每個(gè)單詞出現(xiàn)次數(shù)的總和。
MapReduce如何組織工作?
Hadoop 劃分工作為任務(wù)。有兩種類型的任務(wù):
如上所述
完整的執(zhí)行流程(執(zhí)行 Map 和 Reduce 任務(wù))是由兩種類型的實(shí)體的控制,稱為
對(duì)于每一項(xiàng)工作提交執(zhí)行在系統(tǒng)中,有一個(gè) JobTracker 駐留在 Namenode 和 Datanode 駐留多個(gè) TaskTracker。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。