MapReduce技術(shù)深入理解_第1頁
MapReduce技術(shù)深入理解_第2頁
MapReduce技術(shù)深入理解_第3頁
MapReduce技術(shù)深入理解_第4頁
MapReduce技術(shù)深入理解_第5頁
免費預(yù)覽已結(jié)束,剩余19頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、技術(shù)創(chuàng)新,變革未來MapReduce技術(shù)深入理解內(nèi)容MapReduce 編程模型MapReduce內(nèi)部邏輯MapReduce輸入格式 MapReduce輸出格式MapReduce1運行機(jī)制MapReduce 編程模型(1)以WordCount為例,很多MR程序都可以套用 WordCount的思路,如電商網(wǎng)站中統(tǒng)計最流行的N 個搜索詞,幫助優(yōu)化搜索詞提示MapReduce 編程模型(2)map和reduce函數(shù)遵循如下常規(guī)格式:map 函數(shù)將每個單詞轉(zhuǎn)化為key/value對輸出,這里key為 每個單詞,value為詞頻1。(k2,v2)是 map 輸出的key/value 中間結(jié)果對。redu

2、ce 將相同單詞的所有詞頻進(jìn)行合并,比如將單詞k2,詞頻為list(v2),合并為(k3,v3)。reduce 合并完之后,最 終輸出一系列(k3,v3)鍵值對MapReduce內(nèi)部邏輯(1)MapReduce內(nèi)部邏輯(2)Split:HDFS 中的數(shù)據(jù)以 Split 方式作為 MapReduce 的 輸入Block 是 HDFS 術(shù)語,Split 是 MapReduce 術(shù)語通常1個 Split 對應(yīng)1個 block,也可能對應(yīng)多個block,具 體是由 InputFormat 和壓縮格式?jīng)Q定的默認(rèn)情況下,使用的是 TextInputFormat,這時1個Split對 應(yīng)1個block,上圖

3、4個Split對應(yīng)4個BlockMapper解析出的數(shù)據(jù)輸出到本地磁盤上MapReduce內(nèi)部邏輯(3)Map階段由一批同時運行的Map Task 組成,每個 Map Task由3個部分組成:InputFormat:對輸入數(shù)據(jù)格式進(jìn)行解析,默認(rèn)為TextInputFormat,key代表每行偏移量,value代表每行數(shù) 據(jù)內(nèi)容。Mapper:輸入數(shù)據(jù)處理Partitioner:數(shù)據(jù)分組, Mapper 的輸出key會經(jīng)過 Partitioner 分組選擇不同的Reduce。默認(rèn)Partitioner 會對 map 輸出的key進(jìn)行hash取模,比如有6個Reduce Task, 它就是模(mo

4、d)6,如果key的hash值為0,就選擇第0個 Reduce Task。這樣不同的map 對相同key,它的 hash 值 取模是一樣的MapReduce內(nèi)部邏輯(4)Reduce 階段由一批同時運行的 Reduce Task 組成,每個Reduce Task由4個部分組成:Shuffle: Reduce Task 遠(yuǎn)程拷貝每個 map 處理的結(jié)果,從每個 map 中讀取一部分結(jié)果,每個 Reduce Task 拷貝哪 些數(shù)據(jù),是由 Partitioner 決定的Sort:讀取完數(shù)據(jù)后,會按照key排序,相同的key被分到 一組Reducer:數(shù)據(jù)處理,以WordCount為例,對相同的ke

5、y計詞頻數(shù)OutputFormat:數(shù)據(jù)輸出格式, Reducer 的結(jié)果將按照 OutputFormat 格式輸出,默認(rèn)為 TextOutputFormat ,以 WordCount為例,這里的key為單詞,value為詞頻數(shù)MapReduce 內(nèi)部邏輯(5)緩沖區(qū)默認(rèn)為100M,由io.sort.mb屬性控制緩沖區(qū)快要溢出時(默認(rèn)為緩沖區(qū)大小的80%,由 io.sort.spill.percent屬性控制),寫磁盤,最后合并, reduce端也一樣,reduce端拿到的map端數(shù)據(jù)是按key排序MapReduce輸入格式MR輸入格式FileInputFormat所有使用文件作為數(shù)據(jù)源的 I

6、nputFormat 的基類作用是設(shè)置作業(yè)的輸入文件位置FileInputFormat 提供了四種靜態(tài)方法來設(shè)定 Job 的輸入路徑MR輸入格式TextInputFormat默認(rèn)的 InputFormat鍵是存儲該行在Block中的字節(jié)偏移量值是這行的內(nèi)容,不包括任何行終止符MR輸入格式KeyValueTextInputFormat每一行被分隔符(缺省是t)分割為key和valuekey和value都是Text類型通 過 mapreduce.input.keyvaluelinere cordreader.key.value.separator設(shè)定分隔符MR輸入格式NLineInputForma

7、t每個Mapper 收到固定行數(shù)的輸入鍵是存儲該行在Block中的字節(jié)偏移量值是這行的內(nèi)容,不包括任何行終止符N值由mapreduce.input.lineinputformat.linespermap 屬性設(shè)定。MapReduce輸出格式MR輸出格式 文本輸出默認(rèn)輸出格式是 TextOutputFormat每條記錄寫為文本行每個鍵/值對由制表符進(jìn)行分割設(shè)定 mapreduce.output.textoutputformat.separator 屬性 改變默認(rèn)的分隔符NullWritable 可省略輸出的鍵或值兩者都省略,相當(dāng)于 NullOutputFormat ,什么也不輸出MapReduc

8、e1運行機(jī)制(1)和HDFS一樣,MapReduce也是采用Master/Slave的架構(gòu)MapReduce1包含4個部分:Client、JobTracker、TaskTracker和TaskMapReduce1運行機(jī)制(2)MapReduce1運行機(jī)制(3)MapReduce1運行機(jī)制(4)Client將JAR文件、配置參數(shù)Configuration、計算分片、Distributed Cache 文件存儲在HDFS向 JobTracker 申請JobIdJobTracker:負(fù)責(zé)資源監(jiān)控和作業(yè)調(diào)度監(jiān)控所有TaskTracker 與job的健康狀況,一旦發(fā)現(xiàn)失 敗,就將相應(yīng)的任務(wù)轉(zhuǎn)移到其他節(jié)點

9、跟蹤任務(wù)的執(zhí)行進(jìn)度、資源使用量等信息,并將這些信息告訴作業(yè)調(diào)度器調(diào)度器會在資源出現(xiàn)空閑時,選擇合適的任務(wù)使用這些資源MapReduce1運行機(jī)制(5)TaskTracker:周期性地通過Heartbeat 將本節(jié)點上資源的使用情況 和任務(wù)的運行進(jìn)度匯報給JobTracker接收J(rèn)obTracker 發(fā)送過來的命令并執(zhí)行相應(yīng)的操作( 如啟動新任務(wù)、殺死任務(wù)等)使用“slot”等量劃分本節(jié)點上的資源量,“slot”代表計算 資源(CPU、內(nèi)存等)分配給Task 使用Task:分為Map Task 和Reduce Task 兩種,均由TaskTracker 啟動Map Task 和Reduce Task 分別使用Map slot 和Reduce slotMapReduce1運行機(jī)制(6) 容錯JobTracker:存在單點故障,一旦出現(xiàn)故障,整個集群 就不可用,出現(xiàn)故障之后重啟一下,再把作業(yè)重新提交就可 以了,它不會像 HDFS 那樣出現(xiàn)數(shù)據(jù)的丟失TaskTracker:周期性向 JobTracker 匯報心跳,如果一 定時間內(nèi)沒有匯報,JobTracker 就認(rèn)為該TaskTracker 掛掉 了,或者TaskTracker上運行的Task失敗次數(shù)太多,就會把 上面所有任務(wù)調(diào)度到其它TaskTracker上Task:MapTask和ReduceTask

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論