Hadoop編程入門

Hadoop編程入門

ID:41032947

大?。?5.00 KB

頁數(shù):5頁

時間:2019-08-14

Hadoop編程入門_第1頁
Hadoop編程入門_第2頁
Hadoop編程入門_第3頁
Hadoop編程入門_第4頁
Hadoop編程入門_第5頁
資源描述:

《Hadoop編程入門》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、Hadoop編程入門Hadoop是GoogleMapReduce的一個Java實現(xiàn)。MapReduce是一種簡化的分布式編程模式,讓程序自動分布到一個由普通機器組成的超大集群上并發(fā)執(zhí)行。就如同java程序員可以不考慮內(nèi)存泄露一樣,MapReduce的run-time系統(tǒng)會解決輸入數(shù)據(jù)的分布細節(jié),跨越機器集群的程序執(zhí)行調(diào)度,處理機器的失效,并且管理機器之間的通訊請求。這樣的模式允許程序員可以不需要有什么并發(fā)處理或者分布式系統(tǒng)的經(jīng)驗,就可以處理超大的分布式系統(tǒng)得資源。  一、概論  作為Hadoop程序員,他要做的

2、事情就是:  定義Mapper,處理輸入的Key-Value對,輸出中間結(jié)果?! 《xReducer,可選,對中間結(jié)果進行規(guī)約,輸出最終結(jié)果?! 《xInputFormat和OutputFormat,可選,InputFormat將每行輸入文件的內(nèi)容轉(zhuǎn)換為Java類供Mapper函數(shù)使用,不定義時默認為String?! 《xmain函數(shù),在里面定義一個Job并運行它。然后的事情就交給系統(tǒng)了?! 』靖拍睿篐adoop的HDFS實現(xiàn)了google的GFS文件系統(tǒng),NameNode作為文件系統(tǒng)的負責調(diào)度運行在mast

3、er,DataNode運行在每個機器上。同時Hadoop實現(xiàn)了Google的MapReduce,JobTracker作為MapReduce的總調(diào)度運行在master,TaskTracker則運行在每個機器上執(zhí)行Task?! ain()函數(shù),創(chuàng)建JobConf,定義Mapper,Reducer,Input/OutputFormat和輸入輸出文件目錄,最后把Job提交給JobTracker,等待Job結(jié)束。  JobTracker,創(chuàng)建一個InputFormat的實例,調(diào)用它的getSplits()方法,把輸入目

4、錄的文件拆分成FileSplist作為Mappertask的輸入,生成Mappertask加入Queue。TaskTracker向JobTracker索求下一個Map/Reduce?! apperTask先從InputFormat創(chuàng)建RecordReader,循環(huán)讀入FileSplits的內(nèi)容生成Key與Value,傳給Mapper函數(shù),處理完后中間結(jié)果寫成SequenceFile.ReducerTask從運行Mapper的TaskTracker的Jetty上使用http協(xié)議獲取所需的中間內(nèi)容(33%),So

5、rt/Merge后(66%),執(zhí)行Reducer函數(shù),最后按照OutputFormat寫入結(jié)果目錄?! askTracker每10秒向JobTracker報告一次運行情況,每完成一個Task10秒后,就會向JobTracker索求下一個Task?! utch項目的全部數(shù)據(jù)處理都構(gòu)建在Hadoop之上,詳見ScalableComputingwithHadoop。  二、程序員編寫的代碼  我們做一個簡單的分布式的Grep,簡單對輸入文件進行逐行的正則匹配,如果符合就將該行打印到輸出文件。因為是簡單的全部輸出,

6、所以我們只要寫Mapper函數(shù),不用寫Reducer函數(shù),也不用定義Input/OutputFormat?! ackagedemo.hadooppublicclassHadoopGrep{  publicstaticclassRegMapperextendsMapReduceBaseimplementsMapper{  privatePatternpattern;  publicvoidconfigure(JobConfjob){pattern=Pattern.compile(job.get("mapred.

7、mapper.regex"));  }  publicvoidmap(WritableComparablekey,Writablevalue,OutputCollectoroutput,Reporterreporter)  throwsIOException{  Stringtext=((Text)value).toString();Matchermatcher=pattern.matcher(text);  if(matcher.find()){output.collect(key,value);  }  }

8、  }  privateHadoopGrep(){  }//singleton  publicstaticvoidmain(String[]args)throwsException{  JobConfgrepJob=newJobConf(HadoopGrep.class);  grepJob.setJobName("grep-search");  grepJob.set("mapred

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。