版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Hadoop及Mapreduce入門(mén)檸檬學(xué)院大數(shù)據(jù)培訓(xùn)在線教育OutlinesHadoopOverviewHDFSMap-reduceProgrammingParadigmHadoopMap-reduceJobSchedulerResourcesHadoop,Why?數(shù)據(jù)太多了,需要能存儲(chǔ)、快速分析Pb級(jí)數(shù)據(jù)集的平臺(tái)單機(jī)的存儲(chǔ)、IO、CPU有限,需要可擴(kuò)展的集群?jiǎn)吸c(diǎn)故障問(wèn)題 –單點(diǎn)故障是正?,F(xiàn)象,但需要處理這種異常 –節(jié)點(diǎn)有增有減需要好用的、可靠的基礎(chǔ)平臺(tái)來(lái)解決,最好是開(kāi)源的HadoopHistoryDec2004–GoogleGFSpaperpublishedJuly2005–NutchusesMapReduceFeb2006–BecomesLucenesubprojectApr2007–Yahoo!on1000-nodeclusterApr2008–FastestQuickSorton1TBJan2008–AnApacheTopLevelProjectJul2008–A4000nodetestclusterHadoop-relatedprojectsNutch:網(wǎng)頁(yè)搜索軟件,不只是爬蟲(chóng)Avro:數(shù)據(jù)序列化系統(tǒng)Chukwa:用于管理大規(guī)模分布式集群的數(shù)據(jù)收集系統(tǒng)ZooKeeper:用于分布式應(yīng)用的高性能協(xié)同服務(wù)Hbase:類似于BigTable的,key-value數(shù)據(jù)庫(kù)系統(tǒng)PIG:并行計(jì)算的一種高級(jí)語(yǔ)言Hive:數(shù)據(jù)倉(cāng)庫(kù)Mahout:分布式機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的LibHama:基于BSP的超大規(guī)??茖W(xué)計(jì)算框架WhoUsesHadoopAmazonAdobeAdknowledge:
behavioraltargeting,clickstreamanalyticsAlibabaBaidu:搜索日志分析;每周處理3000TB數(shù)據(jù)BixoLabs:webminingDatagraph:處理RDF數(shù)據(jù),存儲(chǔ)、索引EBay
:532nodes,搜索優(yōu)化和研究ETHZurichSystemsGroup:教學(xué)《MassivelyParallelDataAnalysiswithMapReduce》Facebook
:1100nodes,12PB;300nodes,3PBFOX:3個(gè)Cluster用于日志分析、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)Freestylers:構(gòu)建基于圖片的推薦系統(tǒng)GoogleGruter.Corp:索引、Link分析、數(shù)據(jù)挖掘Hulu:HbasehostingIBMKrugle
:源代碼搜索Last.fm:圖表計(jì)算、A/B測(cè)試,userprofile分析,cookie級(jí)的報(bào)表處理LinebergerComprehensiveCancerCenter:癌癥相關(guān)的研究,使用SeqWareLinkedIn:這人你可能認(rèn)識(shí)TheNewYorkTimesPARC:分析Wikipedia里的沖突Powerset/MicrosoftPressflip:個(gè)性化搜索,訓(xùn)練SVM模型Yahoo?。?000nodes(2*4cpuboxesw4*1TBdisk&16GBRAM)Moreon/hadoop/PoweredBy
GoalsofHDFS大數(shù)據(jù)集存儲(chǔ) –10Knodes,100millionfiles,10PB
應(yīng)付硬件故障 –用文件多副本應(yīng)付故障問(wèn)題 –故障自動(dòng)檢測(cè)和恢復(fù)更適合批量處理 –搬移計(jì)算比搬移數(shù)據(jù)更廉價(jià) –數(shù)據(jù)一次寫(xiě)入,多次讀取 –更注重?cái)?shù)據(jù)讀取的高吞吐量,而不是低延時(shí)適應(yīng)復(fù)雜的硬件及軟件平臺(tái)TheFileSystem一個(gè)集群只有一個(gè)Namespace跟Unix的文件系統(tǒng)Namespace很相似,不過(guò)不支持Hardlink、Softlink文件分塊存儲(chǔ)一般一塊大小為64M,可配置每塊會(huì)被復(fù)制在多個(gè)DataNode上支持回收站當(dāng)一個(gè)文件被刪除時(shí)會(huì)先放入用戶下的回收站回收站會(huì)被定期清除恢復(fù)的方式是將文件從回收站移出NameNodeMetadataMeta-data存在內(nèi)存中 –整個(gè)Meta-data放入主內(nèi)存 –Nodemandpagingofmeta-dataMeta-data記錄了 –文件列表信息 –每個(gè)文件的塊列表 –每個(gè)塊對(duì)應(yīng)的DataNode –文件屬性,如創(chuàng)建時(shí)間、創(chuàng)建者、幾份副本等TransactionLog(EditLog) –記錄了文件系統(tǒng)的每個(gè)變化,如創(chuàng)建文件、刪除文件、修改文件的副本數(shù)等 –EditLog會(huì)被合并為FsImage并存入磁盤(pán)Meta-data磁盤(pán)故障 –NameNode可以維護(hù)多份數(shù)據(jù)DataNodeABlockServer –將數(shù)據(jù)存儲(chǔ)本機(jī)文件系統(tǒng)(e.g.ext3) –存儲(chǔ)數(shù)據(jù)塊的Meta-data(e.g.CRC,ID)匯報(bào) –啟動(dòng)時(shí)向NameNode注冊(cè)本地存儲(chǔ)的文件塊 –定期向NameNode報(bào)告本機(jī)存活(心跳)數(shù)據(jù)輸送 –接收來(lái)自客戶端的寫(xiě)數(shù)據(jù) –向客戶端發(fā)送數(shù)據(jù) –將數(shù)據(jù)傳輸?shù)街付ǖ腄ataNodesBlockReplicaPlacement機(jī)架感知NameNode能感知機(jī)架,選擇較優(yōu)的方式假設(shè)有3份或以上,目前的策略是一份放在本地節(jié)點(diǎn)上第二份放在另外一個(gè)機(jī)架的節(jié)點(diǎn)上第三份放在跟第二份同機(jī)架的不同節(jié)點(diǎn)上其他的隨機(jī)放置客戶端從最近的塊讀取DataCorrectness用CRC32來(lái)做數(shù)據(jù)校驗(yàn) –UseCRC32文件寫(xiě)入 –由客戶端負(fù)責(zé)計(jì)算CRC –checksum存放在DataNode文件讀取 –客戶端從DataNode讀取數(shù)據(jù)和checksum –由客戶端校驗(yàn),如果不通過(guò),則客戶端嘗試從其他的副本讀取數(shù)據(jù)FSShellFShadoopfs-mkdir/foodirhadoopfs-rmr/foodirhadoopfs-cat/foodir/myfile.txthadoopfs-tail/foodir/myfile.txtChmod,chown,put,mv,cp,du,dus更多命令請(qǐng)運(yùn)行hadoopfs–help獲取DFSAdminSafemode,upgradeProgress,refreshNodes,…fsck文件系統(tǒng)檢查Balancer集群均衡WebUIMap-reduceProgrammingParadigmMap-reduceProgrammingParadigmMap-reduce是一種適合分布式計(jì)算的編程范式input|map|shuffle|reduce|output最簡(jiǎn)單的實(shí)現(xiàn)方式cat*|grep‘java’|sort|uniq-c|cat>file實(shí)現(xiàn)這種編程范式的有GoogleHadoopOracleTeradata……HadoopMap/Reduce(input)<k1,v1>->
map
-><k2,v2>->
combine*
-><k2,v2>->reduce
-><k3,v3>(output)combine過(guò)程可能沒(méi)有,也可能有多次Mapperpublic
classMapper<KEYIN,VALUEIN,KEYOUT,VALUEOUT>{
/***Calledonceatthestartofthetask.*/
protected
voidsetup(Contextcontext)throwsIOException,InterruptedException{}
protected
voidmap(KEYINkey,VALUEINvalue,Contextcontext)throwsIOException,InterruptedException{context.write((KEYOUT)key,(VALUEOUT)value);}
/***Calledonceattheendofthetask.*/
protected
voidcleanup(Contextcontext)throwsIOException,InterruptedException{}}Reducerpublic
classReducer<KEYIN,VALUEIN,KEYOUT,VALUEOUT>{
/***Calledonceatthestartofthetask.*/
protected
voidsetup(Contextcontext)throwsIOException,InterruptedException{}
protected
voidreduce(KEYINkey,Iterable<VALUEIN>values,Contextcontext)throwsIOException,InterruptedException{
for(VALUEINvalue:values){context.write((KEYOUT)key,(VALUEOUT)value);
}
}
/***Calledonceattheendofthetask.*/
protected
voidcleanup(Contextcontext)throwsIOException,InterruptedException{}}JobSetup
public
static
voidmain(String[]args)throwsException{String[]otherArgs=newGenericOptionsParser(conf,args).getRemainingArgs();
if(otherArgs.length!=2){System.err.println("Usage:wordcount<in><out>");System.exit(2);
}Jobjob=newJob(newConfiguration(),"wordcount");job.setJarByClass(WordCount.class);
//設(shè)置輸入job.setInputFormatClass(TextInputFormat.class);FileInputFormat.addInputPath(job,newPath(otherArgs[0]));
//Mapjob.setMapperClass(TokenizerMapper.class);
//Combinejob.setCombinerClass(IntSumReducer.class);
//Reducejob.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);
//設(shè)置輸出FileOutputFormat.setOutputPath(job,newPath(otherArgs[1]));
//提交Job并執(zhí)行System.exit(job.waitForCompletion(true)?0:1);
}InjectPointsInputjob.setInputFormatClass()SplitRecordReaderMapjob.setMapperClass()Combine*job.setCombinerClass()Shufflingjob.setPartitionerClass()Sortjob.setSortComparatorClass()Groupingjob.setGroupingComparatorClass()Reducejob.setReducerClass()Outputjob.setOutputFormatClass()JobTracker&TaskTrackerJob&Task一個(gè)Job會(huì)被分成多個(gè)Task執(zhí)行一個(gè)Task對(duì)應(yīng)一個(gè)Map或者ReduceJobTracker運(yùn)行在Master上,管理和跟蹤每個(gè)Job收集Task的信息狀態(tài),并匯總重新調(diào)度失敗的任務(wù)TaskTracker向JobTracker匯報(bào)狀態(tài)(心跳)運(yùn)行在每個(gè)計(jì)算節(jié)點(diǎn)上,管理和跟蹤每個(gè)Task收集task的信息,并提供給JobTrackerFIFO先到先得,排隊(duì)執(zhí)行FairSchedule
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)水泥電桿買賣協(xié)議2024版版
- 2024版單位保潔勞務(wù)分包合同
- 信陽(yáng)2024年河南信陽(yáng)市平橋區(qū)事業(yè)單位選聘2人筆試歷年典型考點(diǎn)(頻考版試卷)附帶答案詳解
- 中山2024年第三期廣東中山市三鄉(xiāng)鎮(zhèn)所屬事業(yè)單位招聘事業(yè)單位人員筆試歷年典型考點(diǎn)(頻考版試卷)附帶答案詳解
- 廚房用具質(zhì)量檢驗(yàn)考核試卷
- 五金批發(fā)商市場(chǎng)細(xì)分研究考核試卷
- 辦公室改造施工方案
- 2025至2030年中國(guó)PU聚氨脂跑道面漆數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 冷藏車運(yùn)輸行業(yè)發(fā)展趨勢(shì)研究報(bào)告考核試卷
- 農(nóng)產(chǎn)品電子商務(wù)平臺(tái)建設(shè)考核試卷
- 學(xué)校對(duì)口幫扶工作計(jì)劃
- 2024年醫(yī)師定期考核臨床業(yè)務(wù)知識(shí)考試題庫(kù)及答案(共三套)
- 建筑材料供應(yīng)鏈管理服務(wù)合同
- 孩子改名字父母一方委托書(shū)
- 2024-2025學(xué)年人教版初中物理九年級(jí)全一冊(cè)《電與磁》單元測(cè)試卷(原卷版)
- 江蘇單招英語(yǔ)考綱詞匯
- 2024年事業(yè)單位財(cái)務(wù)工作計(jì)劃例文(6篇)
- 2024年工程咨詢服務(wù)承諾書(shū)
- 青桔單車保險(xiǎn)合同條例
- 車輛使用不過(guò)戶免責(zé)協(xié)議書(shū)范文范本
- 2023-2024學(xué)年天津市部分區(qū)九年級(jí)(上)期末物理試卷
評(píng)論
0/150
提交評(píng)論