




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、技術(shù)創(chuàng)新,變革未來(lái)MapReduce技術(shù)深入理解內(nèi)容MapReduce 編程模型MapReduce內(nèi)部邏輯MapReduce輸入格式 MapReduce輸出格式MapReduce1運(yùn)行機(jī)制MapReduce 編程模型(1)以WordCount為例,很多MR程序都可以套用 WordCount的思路,如電商網(wǎng)站中統(tǒng)計(jì)最流行的N 個(gè)搜索詞,幫助優(yōu)化搜索詞提示MapReduce 編程模型(2)map和reduce函數(shù)遵循如下常規(guī)格式:map 函數(shù)將每個(gè)單詞轉(zhuǎn)化為key/value對(duì)輸出,這里key為 每個(gè)單詞,value為詞頻1。(k2,v2)是 map 輸出的key/value 中間結(jié)果對(duì)。redu
2、ce 將相同單詞的所有詞頻進(jìn)行合并,比如將單詞k2,詞頻為list(v2),合并為(k3,v3)。reduce 合并完之后,最 終輸出一系列(k3,v3)鍵值對(duì)MapReduce內(nèi)部邏輯(1)MapReduce內(nèi)部邏輯(2)Split:HDFS 中的數(shù)據(jù)以 Split 方式作為 MapReduce 的 輸入Block 是 HDFS 術(shù)語(yǔ),Split 是 MapReduce 術(shù)語(yǔ)通常1個(gè) Split 對(duì)應(yīng)1個(gè) block,也可能對(duì)應(yīng)多個(gè)block,具 體是由 InputFormat 和壓縮格式?jīng)Q定的默認(rèn)情況下,使用的是 TextInputFormat,這時(shí)1個(gè)Split對(duì) 應(yīng)1個(gè)block,上圖
3、4個(gè)Split對(duì)應(yīng)4個(gè)BlockMapper解析出的數(shù)據(jù)輸出到本地磁盤(pán)上MapReduce內(nèi)部邏輯(3)Map階段由一批同時(shí)運(yùn)行的Map Task 組成,每個(gè) Map Task由3個(gè)部分組成:InputFormat:對(duì)輸入數(shù)據(jù)格式進(jìn)行解析,默認(rèn)為T(mén)extInputFormat,key代表每行偏移量,value代表每行數(shù) 據(jù)內(nèi)容。Mapper:輸入數(shù)據(jù)處理Partitioner:數(shù)據(jù)分組, Mapper 的輸出key會(huì)經(jīng)過(guò) Partitioner 分組選擇不同的Reduce。默認(rèn)Partitioner 會(huì)對(duì) map 輸出的key進(jìn)行hash取模,比如有6個(gè)Reduce Task, 它就是模(mo
4、d)6,如果key的hash值為0,就選擇第0個(gè) Reduce Task。這樣不同的map 對(duì)相同key,它的 hash 值 取模是一樣的MapReduce內(nèi)部邏輯(4)Reduce 階段由一批同時(shí)運(yùn)行的 Reduce Task 組成,每個(gè)Reduce Task由4個(gè)部分組成:Shuffle: Reduce Task 遠(yuǎn)程拷貝每個(gè) map 處理的結(jié)果,從每個(gè) map 中讀取一部分結(jié)果,每個(gè) Reduce Task 拷貝哪 些數(shù)據(jù),是由 Partitioner 決定的Sort:讀取完數(shù)據(jù)后,會(huì)按照key排序,相同的key被分到 一組Reducer:數(shù)據(jù)處理,以WordCount為例,對(duì)相同的ke
5、y計(jì)詞頻數(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ū)快要溢出時(shí)(默認(rèn)為緩沖區(qū)大小的80%,由 io.sort.spill.percent屬性控制),寫(xiě)磁盤(pán),最后合并, reduce端也一樣,reduce端拿到的map端數(shù)據(jù)是按key排序MapReduce輸入格式MR輸入格式FileInputFormat所有使用文件作為數(shù)據(jù)源的 I
6、nputFormat 的基類(lèi)作用是設(shè)置作業(yè)的輸入文件位置FileInputFormat 提供了四種靜態(tài)方法來(lái)設(shè)定 Job 的輸入路徑MR輸入格式TextInputFormat默認(rèn)的 InputFormat鍵是存儲(chǔ)該行在Block中的字節(jié)偏移量值是這行的內(nèi)容,不包括任何行終止符MR輸入格式KeyValueTextInputFormat每一行被分隔符(缺省是t)分割為key和valuekey和value都是Text類(lèi)型通 過(guò) mapreduce.input.keyvaluelinere cordreader.key.value.separator設(shè)定分隔符MR輸入格式NLineInputForma
7、t每個(gè)Mapper 收到固定行數(shù)的輸入鍵是存儲(chǔ)該行在Block中的字節(jié)偏移量值是這行的內(nèi)容,不包括任何行終止符N值由mapreduce.input.lineinputformat.linespermap 屬性設(shè)定。MapReduce輸出格式MR輸出格式 文本輸出默認(rèn)輸出格式是 TextOutputFormat每條記錄寫(xiě)為文本行每個(gè)鍵/值對(duì)由制表符進(jìn)行分割設(shè)定 mapreduce.output.textoutputformat.separator 屬性 改變默認(rèn)的分隔符NullWritable 可省略輸出的鍵或值兩者都省略,相當(dāng)于 NullOutputFormat ,什么也不輸出MapReduc
8、e1運(yùn)行機(jī)制(1)和HDFS一樣,MapReduce也是采用Master/Slave的架構(gòu)MapReduce1包含4個(gè)部分:Client、JobTracker、TaskTracker和TaskMapReduce1運(yùn)行機(jī)制(2)MapReduce1運(yùn)行機(jī)制(3)MapReduce1運(yùn)行機(jī)制(4)Client將JAR文件、配置參數(shù)Configuration、計(jì)算分片、Distributed Cache 文件存儲(chǔ)在HDFS向 JobTracker 申請(qǐng)JobIdJobTracker:負(fù)責(zé)資源監(jiān)控和作業(yè)調(diào)度監(jiān)控所有TaskTracker 與job的健康狀況,一旦發(fā)現(xiàn)失 敗,就將相應(yīng)的任務(wù)轉(zhuǎn)移到其他節(jié)點(diǎn)
9、跟蹤任務(wù)的執(zhí)行進(jìn)度、資源使用量等信息,并將這些信息告訴作業(yè)調(diào)度器調(diào)度器會(huì)在資源出現(xiàn)空閑時(shí),選擇合適的任務(wù)使用這些資源MapReduce1運(yùn)行機(jī)制(5)TaskTracker:周期性地通過(guò)Heartbeat 將本節(jié)點(diǎn)上資源的使用情況 和任務(wù)的運(yùn)行進(jìn)度匯報(bào)給JobTracker接收J(rèn)obTracker 發(fā)送過(guò)來(lái)的命令并執(zhí)行相應(yīng)的操作( 如啟動(dòng)新任務(wù)、殺死任務(wù)等)使用“slot”等量劃分本節(jié)點(diǎn)上的資源量,“slot”代表計(jì)算 資源(CPU、內(nèi)存等)分配給Task 使用Task:分為Map Task 和Reduce Task 兩種,均由TaskTracker 啟動(dòng)Map Task 和Reduce Task 分別使用Map slot 和Reduce slotMapReduce1運(yùn)行機(jī)制(6) 容錯(cuò)JobTracker:存在單點(diǎn)故障,一旦出現(xiàn)故障,整個(gè)集群 就不可用,出現(xiàn)故障之后重啟一下,再把作業(yè)重新提交就可 以了,它不會(huì)像 HDFS 那樣出現(xiàn)數(shù)據(jù)的丟失TaskTracker:周期性向 JobTracker 匯報(bào)心跳,如果一 定時(shí)間內(nèi)沒(méi)有匯報(bào),JobTracker 就認(rèn)為該TaskTracker 掛掉 了,或者TaskTracker上運(yùn)行的Task失敗次數(shù)太多,就會(huì)把 上面所有任務(wù)調(diào)度到其它TaskTracker上Task:MapTask和ReduceTask
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《2025消防安全評(píng)估與改善咨詢(xún)合同》
- 2025征地補(bǔ)償合同范本如何擬定
- 電視節(jié)目國(guó)際交流與合作合同
- 《2025殯葬禮儀服務(wù)合同》
- 2025年智能監(jiān)控系統(tǒng)維護(hù)保養(yǎng)合同
- 2025建筑幕墻設(shè)計(jì)與施工合同范本
- 中央動(dòng)脈阻塞護(hù)理課件
- 護(hù)理學(xué)組成員年度匯報(bào)
- 惡液質(zhì)患者的皮膚護(hù)理
- 急救與危重癥護(hù)理
- 蘇教版八年級(jí)生物下冊(cè)期末試卷及答案【蘇教版】
- 2023年河北語(yǔ)文高考試題
- 書(shū)面檢查材料(通用6篇)
- 傳感器與機(jī)器視覺(jué) 課件 第六章 機(jī)器視覺(jué)
- 2019疏浚工程預(yù)算定額
- RFC2326(中文版+英文版+可鏈接目錄)-RTSP
- 2023八年級(jí)歷史下冊(cè)第六單元科技文化與社會(huì)生活第18課科技文化成就說(shuō)課稿新人教版
- 2023新能源光伏電站檢修規(guī)程
- 特種作業(yè)人員體檢表
- 2016電動(dòng)汽車(chē)充換電服務(wù)網(wǎng)絡(luò)運(yùn)營(yíng)管理系統(tǒng)通信規(guī)約:系統(tǒng)與站級(jí)監(jiān)控系統(tǒng)通信規(guī)約
- 知識(shí)產(chǎn)權(quán)技術(shù)部?jī)?nèi)審核查表含審核記錄
評(píng)論
0/150
提交評(píng)論