版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第五章MapReduce編程入門1MapReduce概述、編程模型目錄下載和安裝idea、maven2MapReduce代碼實現(xiàn)3下載和安裝idea在官網(wǎng)下載idea安裝包官網(wǎng):/idea/下載和安裝idea2.將idea安裝包解壓到本地的安裝目錄3.雙擊解壓文件下idea文件夾中的圖標打開idea添加maven插件ApacheMaven是一個(特別是Java編程)項目管理及自動構(gòu)建工具。maven三大功能:管理依賴、構(gòu)建項目、管理項目信息。1)項目的自動構(gòu)建,幫助開發(fā)人員做項目代碼的編譯、測試、打包、安裝、部署等。
2)管理依賴(管理項目中使用的各種jar包)。ProjectObjectModel項目對象模型,maven把項目當做模型處理。操作這個模型就是操作項目。maven通過pom.xml文件實現(xiàn)項目的構(gòu)建和依賴的管理。添加maven插件進入官網(wǎng):/解壓安裝包配置環(huán)境變量添加maven工程進入idea,新建一個項目。選擇maven,projectsdk選擇自己的java版本添加maven工程Name:推薦填寫跟項目相關(guān)的名字。Location:選擇路徑GroupId:填寫域名ArtifactId:填寫項目名Version:填寫版本添加maven工程工程添加完成:想要運行HDFSJavaApi或MR,則需要修改maven自帶的pom文件,進行包及包的依賴下載:添加maven工程添加內(nèi)容參考如下:<dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.7.6</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.7.6</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>2.7.6</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-core</artifactId><version>2.7.6</version></dependency></dependencies>1MapReduce概述、編程模型目錄下載和安裝idea、maven2MapReduce代碼實現(xiàn)3MapReduce概述
MapReduce是什么簡單地說,MapReduce是面向大數(shù)據(jù)并行處理的計算模型、框架和平臺。具體包含以下3層含義。MapReduce是一個并行程序的計算模型與方法MapReduce是一個并行程序運行的軟件框架MapReduce是一個基于集群的高性能并行計算平臺MapReduce概述
MapReduce基本設(shè)計思想面向大規(guī)模數(shù)據(jù)處理,MapReduce有以下三個層面上的基本設(shè)計思想。分而治之抽象成模型上升到構(gòu)架MapReduce概述
MapReduce優(yōu)缺點MapReduce優(yōu)點1)MapReduce易于編程。2)良好的擴展性。3)高容錯性。4)適合PB級以上海量數(shù)據(jù)的離線處理。MapReduce缺點1)不適合實時計算。2)不適合流式計算。3)不適合DAG(有向無環(huán)圖)計算MapReduce概述
MapReduce是Hadoop提供的一種處理海量數(shù)據(jù)的并行編程模型和計算框架,用于對大規(guī)模的數(shù)據(jù)進行并行計算。主要由ResourceManager和NodeManager兩類節(jié)點構(gòu)成。ResourceManager主要負責集群資源管理,NodeManager負責節(jié)點的資源管理。當運行MapReduce任務(wù)的時候,后產(chǎn)生ApplicationMaster和Container,其中ApplicationMaster負責向ResourceManager節(jié)點進行資源的申請并控制任務(wù)的執(zhí)行,Container是最基本的資源單位。MapReduce的Map和Reduce均是其之上進行運行的。MapReduce概述
MapReduce編程思想MapReduce采用“分而治之”的思想。對大規(guī)模的數(shù)據(jù)集的操作分配給各子節(jié)點進行操作,然后通過整合子節(jié)點的中間結(jié)果得到最終結(jié)果。即“任務(wù)的分解和結(jié)果的匯總”。Hadoop將這個工作高度抽象成為兩個函數(shù),分別為Map和Reduce。Map負責將任務(wù)分解為多個任務(wù)。Reduce負責將多個Map任務(wù)的中間結(jié)果合并為最終結(jié)果。在此過程中的其他步驟均由Hadoop的MapReduce框架自行負責處理,包括工作調(diào)度、任務(wù)分配和節(jié)點間通信等。MapReduce原理
(1)Mapper:映射器。(2)Mapper助理InputFormat:輸入文件讀取器。(3)Shuffle:運輸隊。(4)Shuffle助理Sorter:排序器。(5)Reducer:歸約器。(6)Reducer助理OutputFormat:輸出結(jié)果寫入器。MapReduce原理
數(shù)據(jù)分片。假設(shè)原始文件中8000萬行記錄被系統(tǒng)分配給100個Mapper來處理,那么每個Mapper處理80萬行數(shù)據(jù)。相當于MapReduce通過數(shù)據(jù)分片的方式,把數(shù)據(jù)分發(fā)給多個單元來進行處理,這就是分布式計算的第一步。數(shù)據(jù)映射。在數(shù)據(jù)分片完成后,由Mapper助理InputFormat從文件的輸入目錄中讀取這些記錄,然后由Mapper負責對記錄進行解析,并重新組織成新的格式。然后Mapper把自己的處理結(jié)果輸出,等待Shuffle運輸隊取走結(jié)果。數(shù)據(jù)混洗。由Shuffle運輸隊把獲取的結(jié)果按照相同的鍵(Key)進行匯集,再把結(jié)果送到Shuffle助理Sorter,由Sorter負責對這些結(jié)果排好序,然后提交給Reducer。數(shù)據(jù)歸約。Reducer收到傳輸過來的結(jié)果后,接著進行匯總與映射工作,得到最終計算結(jié)果。最后由Reducer助理OutputFormat把結(jié)果輸出到指定位置。MapReduce應(yīng)用示例
背景分析WordCount主要完成的功能是:統(tǒng)計一系列文本文件中每個單詞出現(xiàn)的次數(shù)MapReduce應(yīng)用示例
解決問題的思路業(yè)務(wù)場景:有大量的文件,每個文件里面存儲的都是單詞。我們的任務(wù):統(tǒng)計所有文件中每個單詞出現(xiàn)的次數(shù)。解決思路:先分別統(tǒng)計出每個文件中各個單詞出現(xiàn)的次數(shù);然后,再累加不同文件中同一個單詞出現(xiàn)次數(shù)。MapReduce應(yīng)用示例
數(shù)據(jù)處理流程分析把數(shù)據(jù)源轉(zhuǎn)化為<key,value>對MapReduce應(yīng)用示例
數(shù)據(jù)處理流程分析自定義map()方法處理Mapper任務(wù)輸入的<key,value>對MapReduce應(yīng)用示例
數(shù)據(jù)處理流程分析Map端的shuffle過程MapReduce應(yīng)用示例
數(shù)據(jù)處理流程分析自定義reduce()方法處理Reduce任務(wù)輸入的<key,value>對1MapReduce概述、編程模型目錄下載和安裝idea、maven2MapReduce代碼實現(xiàn)3WordCount代碼實現(xiàn)Mapper類//Map階段
publicstaticclassMyMapperextendsMapper<LongWritable,Text,Text,IntWritable>{/***@paramkey*@paramvalue*@paramcontext*@throwsIOException*@throwsInterruptedException*/protectedvoidmap(LongWritablekey,Textvalue,Mapper<LongWritable,Text,Text,IntWritable>.Contextcontext)throwsIOException,InterruptedException{//實現(xiàn)自己的map端邏輯
StringvStr=value.toString();//按照空格切分,將每個單詞切分出來
String[]words=vStr.split("");//遍歷每一個單詞,構(gòu)造k——v格式
for(Stringword:words){TextkeyOut=newText(word);IntWritablevalueOut=newIntWritable(1);//通過context將構(gòu)建好的k-v發(fā)送出去
context.write(keyOut,valueOut);}}}WordCount代碼實現(xiàn)
Reducer類//Reduce階段
publicstaticclassMyReducerextendsReducer<Text,IntWritable,Text,IntWritable>{/***@paramkey*@paramvalues*@paramcontext*@throwsIOException*@throwsInterruptedException*/@Overrideprotectedvoidreduce(Textkey,Iterable<IntWritable>values,Reducer<Text,IntWritable,Text,IntWritable>.Contextcontext)throwsIOException,InterruptedException{//實現(xiàn)自己的Reduce邏輯
intsum=0;//保存每個單詞的數(shù)量
for(IntWritablevalue:values){//遍歷values迭代器
sum+=value.get();}//將Reduce統(tǒng)計得到的結(jié)果輸出到HDFScontext.write(key,newIntWritable(sum));}}WordCount代碼實現(xiàn)
Driver類//Driver端(將Map、Reduce進行組裝)
publicstaticvoidmain(String[]args)throwsIOException,InterruptedException,ClassNotFoundException{//創(chuàng)建配置文件
Configurationconf=newConfiguration();//創(chuàng)建一個Job實例
Jobjob=Job.getInstance(conf);//對Job進行一些簡單的配置
job.setJobName("demo1WordCount");//設(shè)置運行Job時該執(zhí)行哪一個類
job.setJarByClass(demo1WordCount.class);//對Map端進行配置
job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);job.setMapperClass(MyMapper
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動合同順延合同范例
- 地下車庫車位租賃合同范例
- 工程中介居間合同范例
- 建筑竣工保潔合同范例
- 廣告燈箱制作合同范例
- 意向轉(zhuǎn)讓門面合同范例
- epc中英文合同范例
- 拆遷補償合同范例寫
- led英文合同范例
- 孝感合同范例在線解答
- GB/T 23473-2024林業(yè)植物及其產(chǎn)品調(diào)運檢疫規(guī)程
- 剪叉式液壓升降機畢業(yè)設(shè)計
- 2024年國家開放大學(xué)(電大)-混凝土結(jié)構(gòu)設(shè)計(A)考試近5年真題集錦(頻考類試題)帶答案
- 期末 (試題) -2024-2025學(xué)年人教PEP版英語四年級上冊
- 山東省濟南市槐蔭區(qū)2023-2024學(xué)年五年級上學(xué)期期末數(shù)學(xué)試卷 (一)
- 《淘氣的一天》(教案)-2024-2025學(xué)年一年級上冊數(shù)學(xué)北師大版
- 國開2024年秋《國際經(jīng)濟法》形考任務(wù)1-4答案
- 2023年山西大同平城區(qū)司法協(xié)理員招聘考試試題及答案
- 期末綜合素質(zhì)達標(試題)-2024-2025學(xué)年人教精通版英語五年級上冊
- 全國職業(yè)院校技能大賽高職組(商務(wù)數(shù)據(jù)分析賽項)備賽試題庫(含答案)
- 年加工3萬噸大米改建項目可行性實施報告
評論
0/150
提交評論