云計算-課件第9講hadoop_第1頁
云計算-課件第9講hadoop_第2頁
云計算-課件第9講hadoop_第3頁
云計算-課件第9講hadoop_第4頁
云計算-課件第9講hadoop_第5頁
免費預覽已結(jié)束,剩余116頁可下載查看

下載本文檔

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

文檔簡介

第9 ??對應的云計算系HadoopGFSHadoopMapReduceHadoopBigtableHadoopChubbyEucalyptus、EnomalyECPNimbus、AmazonAmazonSectorand 2011年接近 需 于一個開源的網(wǎng)絡搜索引擎項目Apache由ApacheLucene創(chuàng)始人DougCutting 這個移出的子項目成為了這個移出的子項目成為了2004實2006.112009.3HDFS究集群增個集群總Cutting加 個臺的最初版點器2008.4Nutch移Hadoop個節(jié)點運到新框目正式啟1TB排序Hadoop試集僅20個節(jié)點209穩(wěn)定運 集 ?數(shù) 存放的位置(機架感知策略 通過聯(lián)系amenode,得到所. 數(shù) 數(shù)5.FSDataInputStream連接距離最近的datanode 7FSDataInputStream從datanode數(shù)據(jù)時如果遇到錯誤,會嘗試從該塊的另外一個最近的datanode數(shù)8.每個的塊通過校驗和確認以保證數(shù)據(jù)完整他datanode塊之前通知namenode網(wǎng)絡看做是一棵節(jié)點間距離是節(jié)點到他們最近的共同祖先的距離… 聯(lián)系amenode,內(nèi)列dataqueue求namenode分配適合的新塊來數(shù)據(jù)備份節(jié)點,然后該節(jié)點完之后發(fā)送給第二個節(jié)點,以此類8.FSDataOutputStream一個確認隊列ackqueue, 第一個復本放在節(jié)點本第二個復本放在與第第三個復本放在與第其他復本放在集群中隨機選擇的節(jié)點同時考慮節(jié)點 負載 負GFS:多臺物理服務臺提供服HDFS:單一中心服務器模GFS:ChunkServer在Chubby中獲取獨占鎖表示其生存Master通過輪詢這些獨占鎖獲知ChunkServer的生存狀HDFS:DataNode通過心跳的方式告知NameNode其生存狀GFS中,Master損壞時,替補服務器可以快速獲知Chunk的狀HDFS中,NameNode損壞后,NameNode恢復時需要花費一時間獲知DataNode的狀在添加數(shù) 節(jié)點時,GFS的伸縮性較HDFS要(如個)副本損壞處理 副本失敗時,Master負責發(fā)起拷貝任文件刪除時,僅刪 結(jié)實際數(shù)據(jù)的刪除在等待一段時間后實優(yōu)點?Job–a“fullprogram”-anexecutionofaMapperandReduceracrossadatasetTask–anexecutionofaMapperoraReduceronasliceofdataTaskAttempt–aparticularinstanceofanattempttoexecuteataskonamachinewordcountinputoutputMasternoderunsJobTrackerinstance,whichacceptsJobrequestsfromclientsTaskTrackerinstancesrunonslaveTaskTrackerforksseparateJavaprocessforJobJar文件包含了java程序代XML文件包含序列化的程序配置操Mapper的并Reducer的并Data計算數(shù)據(jù) ConfiguringWithClientprogramcreatesaIdentifyclassesimplementingMapperandSpecifyinputs,Optionally,otheroptionsSubmit

GetnewjobIDfromDeterminesproperdivisionofinputintoSendsjobdata(jar/conf/inputsplits)tothefilesysteminadirectorynamedafterthejobjobjarwithahighreplicationfactor(mapred.submit.replication=10),easyfortasktrackerstoCallsubmitJob(JobID)onPutJobinthequeue,andhaveSchedulerhandleDifferentschedulersInsertsjarandJobConf(serializedtoXML)insharedPostsaJobInProgresstoitsrunTaskTrackersrunningonslavenodesperiodicallyqueryJobTrackerforwork(alsoasaheart-beat)Retrievejob-specificjarandTaskTrackerclosetodataselectedinLaunchtaskinseparateinstanceofmain()isprovidedbyEachTaskTrackerhasafixednumberofmap/reducetaskslots(resource-bounded),withmaptasksinSetsupthechildTaskInProgressReadsXMLConnectsbacktonecessaryIndependenttaskUsesTaskRunnertolaunchusercrashesdonotaffectTaskRunnerlaunchesyourTaskknowsaheadoftimewhichInputSplitsitshouldCallsMapperonceforeachrecordretrievedfromRunningtheReducerismuchtheReportseveryCreatingtheYouprovidetheinstanceofShouldOneinstanceofyourMapperisinitializedperExistsinseparateprocessfromallInstancesofMapper–nodata0.19void parablekey,WritableOutputCollectoroutput,Reporter0.20API(0.19APIalsosupportedvoidmap(KEYINkey,VALUEINvalue,Contextcontext){Context.write((KEYOUT)key,(VALUEOUT)value);}Hadoopstringsintegers(IntWritable),所有 都 Definesinputdata(e.g.,aIdentifiespartitionsofthedatathatformanFactoryforRecordReaderobjectstoextract(k,v)fromtheinput1、文本,行號切2、一定分隔符方式,支持自定義分隔3、大數(shù)據(jù),比如影音等等,通過二進制流數(shù)FileInputFormatwillreadallfilesoutofaspecifieddirectoryandsendthemtothemapperDelegatesfilteringthisfilelisttoamethodsubclassesmayoverridee.g.,Createyourown“xyzFileInputFormat”toreadfromdirectoryEachInputFormatprovidesitsownRecordReaderLineRecordReader–Readsalinefromatext切分大小由mapred.min.split.size控通過getSplit()獲得細RecordReadersfileoffset,MapfunctionreceivesContextContext.write()takes(k,v)Any parable,Writable)canbePartitionAndintgetPartition(key,val,OutputsthepartitionnumberforagivenOnepartition==valuessenttooneReduceHashPartitionerusedbyUseskey.hashCode()toreturnpartitionJobsetsPartitionerMapOutputinWhenyoucallcollect()inWrite<partition-id,key-value>inbuffer//parition-idobtainedbycallWhenthebufferisfull,callsortAndSpill()tocreatespillsortedbypartition-Callcombiner.reduce()ifcombinerisnotWritepartitionedkey-valuesonebyWhenmapfinishes,callmergeParts()tomergethespillsbyReduceCopy:callReduceCopier.fetchOutput()togetmapNote,copymaystartatthesameasSort:Mergethemapoutput,andcreatesaIteratoraccesskey-valueReduce:callerreduce(KEYINkey,Iterable<VALUEIN>values,Contextcontext)Keys&valuessenttoonepartitionallgotothesamereducetaskCallsaresortedbykey–“earlier”keysarereducedandoutputbefore“l(fā)ater”keysRemember–values.next()alwaysreturnstheobject,differentFinally:WritingTheTextOutputFormat–Writes“keyval\n”stringsoutputSequenceFileOutputFormat–Usesabinaryformatpack(k,v)NullOutputFormat–Discards?數(shù)據(jù)庫系統(tǒng)已無法適應大型分布式數(shù) 的需空間的擴展只需要加 結(jié)

2006年底由PowerSetChadWalters和JimKellerman2008年成為ApacheHadoop的一個子項現(xiàn)已作為產(chǎn)品被使 Row

Column“<html>..“<html>..“<html>..

列列

其中,族 都可為任意形式的 數(shù)據(jù)模型-RowRow““

“<html>..“<html>..

Column “<html>..“<html>..RowTimeColumn:RowColumn “<html>..“<html>..“<html>..RowTimeColumn:

ZooKeeper

Map Map

為區(qū)域 負 區(qū)域的分

區(qū)域服務器(RegionServer)職

修改confhbase-env.sh,Hbase-啟動Hbasebin/start-bin/hbase createdescribedropget/put

HBase

HBase 數(shù)據(jù)庫andWhyPigseatPigLatin運行PigLatinPigLatin是數(shù)據(jù)流編程語言,是對輸入的一步步操作,每Records=D‘input/ncdc/micro-tab/sample.txt’AS(year:chararray,temperature:int,quality:int);Filtered_records=FILTERrecordsBY atr9999D(quality=0Rquality=4Rquality=5Rquality=9);Grouped_records=Pfiltered_re=grouped_recordsP

的記錄進行過組PigLatin從文件系統(tǒng)或其他中加載數(shù)文件系統(tǒng)交互命令,如創(chuàng)建 、刪除文 文件到一 、改變當 算數(shù)、條件、布爾、函數(shù)、字段名、第n個字段、鍵值對中鍵值數(shù)值、文本(字符數(shù)組)集合、鍵值對(鍵必須是字符數(shù)組計算函數(shù)、過濾函數(shù)、加載函數(shù) 函Grouped_records=GROUPrecordsBYyearHiveQLvs對表的進一步劃比如對日志文件按照日期進行分區(qū),則同一天記錄被存放在同一分區(qū)中,以縮小處理范桶分區(qū)可以進一步分為桶為數(shù)據(jù)提供額外的結(jié)構(gòu)以獲得更高效的處比 市機動車牌尾號除以5的余數(shù)分成5個TABLEtable1(id STRING,eDA tabletable1;MSELECTyear,PSELECTyear,EPBYyear

?map-reducejob業(yè)界普遍總結(jié)出老Hadoop的Map-Reduce只能支持4000節(jié)點主機的上限。TaskTrackermap/reducetask的表示過于簡單,沒有考慮到cpu/內(nèi)存的占用情況,如果兩個大內(nèi)存消耗的task被調(diào)度到了一塊,很容易出現(xiàn)TaskTrackermaptaskslotreducetaskslotmaptaskreducetask的時候,會造成資源的浪費,也就是前面提為一個class做了太多的事情,代碼量達3000多行,,classbug修復和版本的難HadoopMapReducebug升和特性化)時,都會強制進行系統(tǒng)級別的升級更新。更HadoopAPI ResourceManager,ApplicationMaster與NodeManager三個部分。ResourceManager是一個中心的服務,它做的事情是調(diào)JobApplicationMaster、另外監(jiān)控ApplicationMaster的存在情況。ResourceManager負責作業(yè)與資源的調(diào)度。接收JobSubmitterContext)度過程,分配一個Container作為AppMstrApplicationMasterJob包括task的 ApplicationMaster,它可以運行在ResourceManagerNodeManager功能比較專一,就是負責Container狀態(tài) ,并向RM保持心跳。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論