




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
MapReduce并行計算單元目錄1.了解MapReduce的基本概念2.理解YARN3.了解Mapreduce命令行用法4.了解Mapreduce拓展知識MapReduce項目實戰(zhàn)了解Mapreduce拓展知識MapReduce數(shù)據(jù)流在分布式計算中,MapReduce框架負(fù)責(zé)處理了并行編程中分布式存儲、工作調(diào)度、負(fù)載均衡、容錯均衡、容錯處理以及網(wǎng)絡(luò)通信等復(fù)雜問題,把處理過程高度抽象為兩個函數(shù):map和reduce,map負(fù)責(zé)把任務(wù)分解成多個任務(wù),reduce負(fù)責(zé)把分解后多任務(wù)處理的結(jié)果匯總起來。需要注意的是,用MapReduce來處理的數(shù)據(jù)集(或任務(wù))必須具備這樣的特點:待處理的數(shù)據(jù)集可以分解成許多小的數(shù)據(jù)集,而且每一個小數(shù)據(jù)集都可以完全并行地進(jìn)行處理。如圖所示,所有組件一起工作場景。了解Mapreduce拓展知識在上一圖中,描述了HadoopMapReduce的高層視圖。從那個圖你可以看到mapper和reducer組件是如何用到詞頻統(tǒng)計程序中的,它們是如何完成它們的目標(biāo)的。接下來,我們要近距離的來來看看這個系統(tǒng)以獲取更多的細(xì)節(jié)。了解Mapreduce拓展知識首先我們來看下輸入文件,該文件是MapReduce任務(wù)的數(shù)據(jù)的初始存儲地。正常情況下,輸入文件一般是存在HDFS里。這些文件的格式可以是任意的;我們可以使用基于行的日志文件,也可以使用二進(jìn)制格式,多行輸入記錄或其它一些格式。一般這些文件會很大,比如1G-100G或更大。輸入格式:Mapreduce任務(wù)的輸入類InputFormat類定義了如何分割和讀取輸入文件,它提供有下面的幾個功能:選擇作為輸入的文件或?qū)ο?;定義把文件劃分到任務(wù)的InputSplits;為RecordReader讀取文件提供了一個工廠方法;Hadoop自帶了好幾個輸入格式。其中有一個抽象類叫FileInputFormat,所有操作文件的InputFormat類都是從它那里繼承功能和屬性。當(dāng)開啟Hadoop作業(yè)時,F(xiàn)ileInputFormat會得到一個路徑參數(shù),這個路徑內(nèi)包含了所需要處理的文件,F(xiàn)ileInputFormat會讀取這個文件夾內(nèi)的所有文件(譯注:默認(rèn)不包括子文件夾內(nèi)的),然后它會把這些文件拆分成一個或多個的InputSplit。你可以通過JobConf對象的setInputFormat()方法來設(shè)定應(yīng)用到你的作業(yè)輸入文件上的輸入格式。了解Mapreduce拓展知識化MapReduce任務(wù)。相信每個都會問自己兩個問題“我如何完成這個任務(wù)”,以及“怎么能讓程序運(yùn)行得更快”。同樣,MapReduce計算模型的多次優(yōu)化也是為了更好地解答這兩個問題。MapReduce計算模型的優(yōu)化涉及了方方面面的內(nèi)容,但是主要集中在兩個方面:一是計算性能方面的優(yōu)化;二是I/O操作方面的優(yōu)化。這其中,又包含六個方面的內(nèi)容。任務(wù)調(diào)度任務(wù)調(diào)度是Hadoop中非常重要的一環(huán),這個優(yōu)化又涉及兩個方面的內(nèi)容。計算方面:Hadoop總會優(yōu)先將任務(wù)分配給空閑的機(jī)器,使所有的任務(wù)能公平地分享系統(tǒng)資源。I/O方面:Hadoop會盡量將Map任務(wù)分配給InputSplit所在的機(jī)器,以減少網(wǎng)絡(luò)I/O的消耗。數(shù)據(jù)預(yù)處理與InputSplit的大小MapReduce任務(wù)擅長處理少量的大數(shù)據(jù),而在處理大量的小數(shù)據(jù)時,MapReduce的性能就會遜色很多。因此在提交MapReduce任務(wù)前可以先對數(shù)據(jù)進(jìn)行一次預(yù)處理,將數(shù)據(jù)合并以提高M(jìn)apReduce任務(wù)的執(zhí)行效率,這個辦法往往很有效。如果這還不行,可以參考Map任務(wù)的運(yùn)行時間,當(dāng)一個Map任務(wù)只需要運(yùn)行幾秒就可以結(jié)束時,就需要考慮是否應(yīng)該給它分配更多的數(shù)據(jù)。通常而言,一個Map任務(wù)的運(yùn)行時間在一分鐘左右比較合適,可以通過設(shè)置Map的輸入數(shù)據(jù)大小來調(diào)節(jié)Map的運(yùn)行時間。在FileInputFormat中(除了CombineFileInputFormat),Hadoop會在處理每個Block后將其作為一個InputSplit,因此合理地設(shè)置block塊大小是很重要的調(diào)節(jié)方式。除此之外,也可以通過合理地設(shè)置Map任務(wù)的數(shù)量來調(diào)節(jié)Map任務(wù)的數(shù)據(jù)輸入。了解Mapreduce拓展知識Map和Reduce任務(wù)的數(shù)量合理地設(shè)置Map任務(wù)與Reduce任務(wù)的數(shù)量對提高M(jìn)apReduce任務(wù)的效率是非常重要的。默認(rèn)的設(shè)置往往不能很好地體現(xiàn)出MapReduce任務(wù)的需求,不過,設(shè)置它們的數(shù)量也要有一定的實踐經(jīng)驗。首先要定義兩個概念—Map/Reduce任務(wù)槽。Map/Reduce任務(wù)槽就是這個集群能夠同時運(yùn)行的Map/Reduce任務(wù)的最大數(shù)量。比如,在一個具有1200臺機(jī)器的集群中,設(shè)置每臺機(jī)器最多可以同時運(yùn)行10個Map任務(wù),5個Reduce任務(wù)。那么這個集群的Map任務(wù)槽就是12000,Reduce任務(wù)槽是6000。任務(wù)槽可以幫助對任務(wù)調(diào)度進(jìn)行設(shè)置。設(shè)置MapReduce任務(wù)的Map數(shù)量主要參考的是Map的運(yùn)行時間,設(shè)置Reduce任務(wù)的數(shù)量就只需要參考任務(wù)槽的設(shè)置即可。一般來說,Reduce任務(wù)的數(shù)量應(yīng)該是Reduce任務(wù)槽的0.95倍或是1.75倍,這是基于不同的考慮來決定的。當(dāng)Reduce任務(wù)的數(shù)量是任務(wù)槽的0.95倍時,如果一個Reduce任務(wù)失敗,Hadoop可以很快地找到一臺空閑的機(jī)器重新執(zhí)行這個任務(wù)。當(dāng)Reduce任務(wù)的數(shù)量是任務(wù)槽的1.75倍時,執(zhí)行速度快的機(jī)器可以獲得更多的Reduce任務(wù),因此可以使負(fù)載更加均衡,以提高任務(wù)的處理速度。了解Mapreduce拓展知識Combine函數(shù)Combine函數(shù)是用于本地合并數(shù)據(jù)的函數(shù)。在有些情況下,Map函數(shù)產(chǎn)生的中間數(shù)據(jù)會有很多是重復(fù)的,比如在一個簡單的WordCount程序中,因為詞頻是接近與一個zipf分布的,每個Map任務(wù)可能會產(chǎn)生成千上萬個記錄,若將這些記錄一一傳送給Reduce任務(wù)是很耗時的。所以,MapReduce框架運(yùn)行用戶寫的combine函數(shù)用于本地合并,這會大大減少網(wǎng)絡(luò)I/O操作的消耗。此時就可以利用combine函數(shù)先計算出在這個Block中單詞the的個數(shù)。合理地設(shè)計combine函數(shù)會有效地減少網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,提高M(jìn)apReduce的效率。在MapReduce程序中使用combine很簡單,只需在程序中添加如下內(nèi)容:job.setCombinerClass(combine.class);在WordCount程序中,可以指定Reduce類為combine函數(shù),具體如下:job.setCombinerClass(Reduce.class);壓縮編寫MapReduce程序時,可以選擇對Map的輸出和最終的輸出結(jié)果進(jìn)行壓縮(同時可以選擇壓縮方式)。在一些情況下,Map的中間輸出可能會很大,對其進(jìn)行壓縮可以有效地減少網(wǎng)絡(luò)上的數(shù)據(jù)傳輸量。對最終結(jié)果的壓縮雖然會減少數(shù)據(jù)寫HDFS的時間,但是也會對讀取產(chǎn)生一定的影響,因此要根據(jù)實際情況來選擇(第7章中提供了一個小實驗來驗證壓縮的效果)。自定義co
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人裝修水電合同
- 2025年宜昌道路運(yùn)輸從業(yè)資格證考試內(nèi)容是什么
- 2025年平頂山貨運(yùn)從業(yè)資格模擬考
- 2025年室外裝修承包合同8篇
- 《數(shù)據(jù)可視化技術(shù)應(yīng)用》1.2 開啟數(shù)據(jù)可視化之門-教案
- 2025年陜西貨運(yùn)從業(yè)資格證考試題技巧
- 旋片真空泵競爭策略分析報告
- 產(chǎn)品訂單合同范本
- 電安裝施工合同范本
- 出售養(yǎng)殖棚合同范本
- 富饒的西沙群島課件
- 中英文對照版 ASTM B594 2019 鋁合金形變產(chǎn)品超聲波檢測標(biāo)準(zhǔn)慣例
- 五年級下冊道德與法治教學(xué)計劃
- 讀書分享-于永正-我怎樣教語文
- 2024工貿(mào)企業(yè)重大事故隱患判定標(biāo)準(zhǔn)解讀
- 高中語文(統(tǒng)編版)選必中冊-第二單元教材分析解讀課件
- 哈爾濱鐵道職業(yè)技術(shù)學(xué)院單招《語文》考試復(fù)習(xí)題庫(含答案)
- 華東師范大學(xué)《政治學(xué)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 1醫(yī)學(xué)圖像處理緒論課件
- 校園門禁系統(tǒng)升級方案
- 汽車行業(yè)職位職級管理制度實施方案
評論
0/150
提交評論