版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
云計(jì)算關(guān)鍵技術(shù)鄭偉平2021-7-26虛擬化技術(shù)內(nèi)容1虛擬化定義2虛擬化分類3全虛擬化與半虛擬化4虛擬化實(shí)現(xiàn)5虛擬化技術(shù)比較與選型6虛擬化帶來的好處7虛擬化帶來的問題8虛擬化適用范圍9效勞器虛擬化過程2MapReduceMapReduce是一個(gè)簡(jiǎn)單易用的并行編程模型,它極大簡(jiǎn)化了大規(guī)模數(shù)據(jù)處理問題的實(shí)現(xiàn)3DivideandConquer“Work〞w1w2w3r1r2r3“Result〞“worker〞“worker〞“worker〞PartitionCombineParallelizationChallengesHowdoweassignworkunitstoworkers?Whatifwehavemoreworkunitsthanworkers?Whatifworkersneedtosharepartialresults?Howdoweaggregatepartialresults?Howdoweknowalltheworkershavefinished?Whatifworkersdie?Whatisthecommonthemeofalloftheseproblems?CommonTheme?Parallelizationproblemsarisefrom:Communicationbetweenworkers(e.g.,toexchangestate)Accesstosharedresources(e.g.,data)Thus,weneedasynchronizationmechanismManagingMultipleWorkersDifficultbecauseWedon’tknowtheorderinwhichworkersrunWedon’tknowwhenworkersinterrupteachotherWedon’tknowtheorderinwhichworkersaccessshareddataThus,weneed:Semaphores(lock,unlock)Conditionalvariables(wait,notify,broadcast)BarriersStill,lotsofproblems:Deadlock,livelock,raceconditions...Diningphilosophers,sleepybarbers,cigarettesmokers...Moralofthestory:becareful!CurrentToolsProgrammingmodelsSharedmemory(pthreads)Messagepassing(MPI)DesignPatternsMaster-slavesProducer-consumerflowsSharedworkqueuesMessagePassingP1P2P3P4P5SharedMemoryP1P2P3P4P5MemorymasterslavesproducerconsumerproducerconsumerworkqueueBut,nowMapreduce!Mapreduce:Parallel/DistributedComputingProgrammingModelInputsplitshuffleoutputTypicalproblemsolvedbyMapReduce讀入數(shù)據(jù):key/value對(duì)的記錄格式數(shù)據(jù)Map:從每個(gè)記錄里extractsomethingmap(in_key,in_value)->list(out_key,intermediate_value)處理inputkey/valuepair輸出中間結(jié)果key/valuepairsShuffle:混排交換數(shù)據(jù)把相同key的中間結(jié)果聚集到相同節(jié)點(diǎn)上Reduce:aggregate,summarize,filter,etc.reduce(out_key,list(intermediate_value))->list(out_value)歸并某一個(gè)key的所有values,進(jìn)行計(jì)算輸出合并的計(jì)算結(jié)果(usuallyjustone)輸出結(jié)果MapreduceFrameworkMapreduceFrameworkShuffleImplementationPartitionandSortGroupPartitionfunction:hash(key)%reducernumberGroupfunction:sortbykeyExampleuses:distributedgrep
distributedsort
weblink-graphreversalterm-vector/hostwebaccesslogstatsinvertedindexconstructiondocumentclusteringmachinelearningstatisticalmachinetranslation.........ModelisWidelyApplicable
MapReduceProgramsInGoogleSourceTree
GoogleMapReduceArchitectureSingleMasternodeManyworkerbeesManyworkerbeesMapReduceOperationInitialdatasplitinto64MBblocksComputed,results
locallystoredMsendsdata
locationtoRworkersFinaloutputwrittenMasterinformedof
resultlocationsExecutionoverview1.InputfilesaresplitintoMpieces(16to64MB)Manyworkercopiesoftheprogramareforked.2.Onespecialcopy,themaster,assignsmapandreducetaskstoidleslaveworkers3.Mapworkersreadinputsplits,parse(key,value)pairs,applythemapfunction,createbufferedoutputpairs.4.Bufferedoutputpairsareperiodicallywrittentolocaldisk,partitionedintoRregions,locationsofregionsarepassedbacktothemaster.5.Masternotifiesreduceworkeraboutlocations.Workerusesremoteprocedurecallstoreaddatafromlocaldisksofthemapworkers,sortsbyintermediatekeystogroupsamekeyrecordstogether.
Executionoverviewcont’6.Reduceworkerpasseskeypluscorrespondingsetofallintermediatedatatoreducefunction.Theoutputofthereducefunctionisappendedtothefinaloutputfile.7.Whenallmapandreducetasksarecompletedthemasterwakesuptheuserprogram,whichresumestheusercode.FaultTolerance:workersmaster保持一些數(shù)據(jù)結(jié)構(gòu)。它為每個(gè)map和reduce任務(wù)存儲(chǔ)它們的狀態(tài)(空閑,工作中,完成),和worker機(jī)器(非空閑任務(wù)的機(jī)器)的標(biāo)識(shí)。Masterpingsworkersperiodically.Noresponse:workermarkedasfailed.Completedmaptasksareresettoidlestate,sothattheycanberestarted,becausetheirresults(localtofailedworker)arelost.Completedreducetasksdonotneedtobere-started(outputstoredinglobalfilesystem).Reducetasksarenotifiedofthenewmaptasks,sotheycanreadunreaddatafromthenewlocations.FaultTolerance:MasterMasterwritescheckpointsOnlyonemaster,lesschanceoffailureIfmasterfailes,MapReducetaskaborts.Refinement:RedundantExecutionSlowworkerssignificantlydelaycompletiontimeOtherjobsconsumingresourcesonmachineBaddisksw/softerrorstransferdataslowlySolution:Nearendofphase,spawnbackuptasks
Whicheveronefinishesfirst"wins"DramaticallyshortensjobcompletiontimeRefinement:LocalityOptimization
Masterschedulingpolicy:AsksGFSforlocationsofreplicasofinputfileblocksMaptaskstypicallysplitinto64MB(GFSblocksize)MaptasksscheduledsoGFSinputblockreplicaareonsamemachineorsamerack
EffectThousandsofmachinesreadinputatlocaldiskspeedWithoutthis,rackswitcheslimitreadrateRefinement:SkippingBadRecords
Map/Reducefunctionssometimesfailforparticularinputs
Bestsolutionistodebug&fixNotalwayspossible~third-partysourcelibrariesOnsegmentationfault:SendUDPpackettomasterfromsignalhandlerIncludesequencenumberofrecordbeingprocessedIfmasterseestwofailuresforsamerecord:Nextworker
istoldtoskiptherecord
CompressionofintermediatedataCombiner“Combiner〞functionscanrunonsamemachineasamapperCausesamini-reducephasetooccurbeforetherealreducephase,tosavebandwidthLocalexecutionfordebugging/testingUser-definedcountersOtherRefinementsHadoopMapReduceArchitectureMaster/WorkerModelLoad-balancingbypollingmechanismHistoryofHadoop2004-InitialversionsofwhatisnowHadoopDistributedFileSystemandMap-ReduceimplementedbyDougCutting&MikeCafarellaDecember2005-Nutchportedtothenewframework.Hadooprunsreliablyon20nodes.January2006-DougCuttingjoinsYahoo!February2006-ApacheHadoopprojectofficialstartedtosupportthestandalonedevelopmentofMap-ReduceandHDFS.March2006-FormationoftheYahoo!HadoopteamMay2006-YahoosetsupaHadoopresearchcluster-300nodesApril2006-Sortbenchmarkrunon188nodesin47.9hoursMay2006-Sortbenchmarkrunon500nodesin42hours(betterhardwarethanAprilbenchmark)October2006-Researchclusterreaches600NodesDecember2006-Sorttimes20nodesin1.8hrs,100nodesin3.3hrs,500nodesin5.2hrs,900nodesin7.8January2006-Researchclusterreaches900nodeApril2007-Researchclusters-2clustersof1000nodesSep2021-ScalingHadoopto4000nodesatYahoo!April2021–release0.20.0,manyimprovements,newfeatures,bugfixesandoptimizations.分布式文件系統(tǒng)分布式文件系統(tǒng)特點(diǎn)和根本要求緩存容錯(cuò)和可擴(kuò)展性28分布式文件系統(tǒng)的特點(diǎn)和根本要求分布式文件系統(tǒng)的特點(diǎn)為整個(gè)網(wǎng)絡(luò)上的文件系統(tǒng)資源提供了一個(gè)邏輯樹結(jié)構(gòu),用戶可以拋開文件的實(shí)際物理位置,僅通過一定的邏輯關(guān)系就可以查找和訪問網(wǎng)絡(luò)的共享資源。用戶能夠像訪問本地文件一樣,訪問分布在網(wǎng)絡(luò)中多個(gè)效勞器上的文件。分布式文件系統(tǒng)的顧客、效勞員和存儲(chǔ)設(shè)備分散在各機(jī)器上,效勞活動(dòng)必須跨網(wǎng)完成。存儲(chǔ)設(shè)備不是單一的集中數(shù)據(jù)存儲(chǔ)器。分布式文件系統(tǒng)的具體配置和實(shí)現(xiàn)可以有很大的不同,有的效勞員運(yùn)行在專用的效勞器上,有的機(jī)器既是效勞員又是顧客。29分布式文件系統(tǒng)的特點(diǎn)和根本要求分布式文件系統(tǒng)的根本要求透明性位置透明性:效勞員和存儲(chǔ)器的多重性和分散性對(duì)顧客透明。移動(dòng)透明性:用戶意識(shí)不到資源的移動(dòng)。性能透明性:當(dāng)效勞負(fù)載在一定范圍內(nèi)變化時(shí),客戶程序可以保持滿意的性能。擴(kuò)展透明性:文件效勞可以擴(kuò)充,以滿足負(fù)載和網(wǎng)絡(luò)規(guī)模的增長(zhǎng)。 性能分布式文件系統(tǒng)比常規(guī)文件系統(tǒng)類似〔有時(shí)更好〕的性能和可靠性30容錯(cuò)為了處理暫時(shí)的通信錯(cuò)誤,容錯(cuò)設(shè)計(jì)可以基于最多一次性語義無狀態(tài)的效勞器:崩潰重啟時(shí)不需恢復(fù)平安性身份驗(yàn)證,訪問控制,平安通道效率:應(yīng)提供比傳統(tǒng)文件系統(tǒng)相同或更強(qiáng)的性能和可靠性分布式文件系統(tǒng)的特點(diǎn)和根本要求31分布式文件系統(tǒng)的緩存緩存方案的設(shè)計(jì)需要考慮的問題:緩存的單位問題存儲(chǔ)局部文件的位置如何決定各個(gè)顧客緩存中的數(shù)據(jù)是否一致32分布式文件系統(tǒng)的緩存緩存的粒度和地點(diǎn)緩存的粒度:如果數(shù)據(jù)單元(即粒度)愈大,那么下次訪問的數(shù)據(jù)在顧客方的本地找到的可能性愈大,但傳送數(shù)據(jù)的時(shí)間和一致性問題也增加了。反之,粒度太小,通信的開銷也隨之增加。緩存的地點(diǎn)在一個(gè)各自有主存和磁盤的客戶-效勞器系統(tǒng)中,有四個(gè)地方可以用來存儲(chǔ)文件或存儲(chǔ)局部文件:效勞器磁盤、效勞器主存、客戶磁盤〔如果可用的話〕或者客戶主存。33分布式文件系統(tǒng)的緩存更新策略、緩存有效性檢驗(yàn)和一致性判定本地緩存的數(shù)據(jù)副本是否與原本一致,有兩個(gè)根本方法驗(yàn)證其有效性:顧客發(fā)動(dòng)的方法。顧客與效勞員聯(lián)系,檢查本地?cái)?shù)據(jù)與原本是否一致。這個(gè)方法的關(guān)鍵是有效性檢驗(yàn)的頻度。效勞員發(fā)動(dòng)的方法。效勞員為每個(gè)顧客登記被該顧客緩存的文件或文件的某個(gè)局部。當(dāng)效勞員檢測(cè)出可能不一致時(shí),必須做出反響。效勞員發(fā)動(dòng)方法的一個(gè)問題是違背顧客/效勞員模型34容錯(cuò)和可擴(kuò)充性可用性與文件復(fù)制可恢復(fù)性:當(dāng)對(duì)某個(gè)文件的操作失敗,或由顧客夭折此操作時(shí),如果文件能轉(zhuǎn)換到原來的一致狀態(tài),那么說此文件是可恢復(fù)的。堅(jiān)決性:如果當(dāng)某個(gè)存儲(chǔ)器崩潰和存儲(chǔ)介質(zhì)損壞時(shí)某個(gè)文件能保證完好,那么說此文件是堅(jiān)決的??捎眯裕喝绻麩o論何時(shí)一旦需要就可訪問,甚至在某個(gè)機(jī)器和存儲(chǔ)器崩潰,或者在發(fā)生通信失效的情況下,某個(gè)文件仍然可被訪問,那么這種文件叫做是可用的。35容錯(cuò)和可擴(kuò)充性可用性與文件復(fù)制文件復(fù)制:文件復(fù)制是一個(gè)冗余措施。這里指的是不同機(jī)器上的文件復(fù)制,而不是同一機(jī)器上不同介質(zhì)上的文件復(fù)制(如鏡像磁盤)。文件復(fù)制的原因通過對(duì)每個(gè)文件的獨(dú)立備份來增加系統(tǒng)的可靠性。當(dāng)一個(gè)文件效勞器出現(xiàn)問題時(shí),仍允許進(jìn)行文件訪問;將工作量分配到多個(gè)效勞器上,防止運(yùn)行性能上的瓶頸。36容錯(cuò)和可擴(kuò)充性可用性與文件復(fù)制用戶需要了解文件復(fù)制到何種程度嗎?在文件復(fù)制進(jìn)程中需要到達(dá)什么要求呢?文件復(fù)制的要求:應(yīng)對(duì)用戶隱匿復(fù)制細(xì)節(jié)。把一份復(fù)制件名字變換成指定的復(fù)制件是命名方案的任務(wù)。與復(fù)制件有關(guān)的主要問題是它們的更新。從用戶觀點(diǎn)看,文件的所有復(fù)制品代表同一邏輯實(shí)體,所以對(duì)任何復(fù)制件的更新必須反映到所有其他復(fù)制件。大多數(shù)情況下,不能放棄文件數(shù)據(jù)的一致性,因此使用復(fù)制來增加可用性時(shí)還要使用復(fù)雜的更新傳播協(xié)議。37容錯(cuò)和可擴(kuò)充性可擴(kuò)充性設(shè)計(jì)大規(guī)模系統(tǒng)要考慮的問題:首先是有界資源(boundedresources)原理:“從系統(tǒng)的任何局部來的效勞要求應(yīng)該限于一個(gè)常數(shù),此常數(shù)和系統(tǒng)中的節(jié)點(diǎn)數(shù)無關(guān)〞。負(fù)載和系統(tǒng)規(guī)模成比例的任何效勞員,一旦系統(tǒng)擴(kuò)充到超過某一范圍那么必然阻塞,再增加資源也緩解不了這個(gè)問題。播送是一種使網(wǎng)絡(luò)中的每個(gè)機(jī)器都參加的活動(dòng)。在播送根底上建立的機(jī)構(gòu)對(duì)超大型系統(tǒng)很明顯不實(shí)際。網(wǎng)絡(luò)擁擠和延遲是大規(guī)模系統(tǒng)的主要障礙。使用緩存和實(shí)施放松的共享語義,使跨機(jī)器的交互作用最少。38容錯(cuò)和可擴(kuò)充性可擴(kuò)充性設(shè)計(jì)大規(guī)模系統(tǒng)要考慮的問題:不應(yīng)當(dāng)使用集中控制方案和集中的資源建立可擴(kuò)充的和容錯(cuò)的系統(tǒng)。分散化的一個(gè)重要方面是系統(tǒng)的管理。分配管理職責(zé)時(shí),應(yīng)有利于自治性和對(duì)稱性,不干擾分布式系統(tǒng)的連貫性和一致性。將系統(tǒng)劃分為假設(shè)干半自治的小組。每個(gè)小組包括一些機(jī)器和一個(gè)專用的小組效勞員。為了盡量減少跨越小組的文件訪問,大多數(shù)時(shí)間,每個(gè)機(jī)器的請(qǐng)求應(yīng)由其小組效勞員滿足。39HDFS〔HadoopDistributedFileSystem〕Hadoop分布式文件系統(tǒng)(HDFS)被設(shè)計(jì)成適合運(yùn)行在通用硬件(commodityhardware)上的分布式文件系統(tǒng)。它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點(diǎn)。但同時(shí),它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的。HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。HDFS放寬了一局部POSIX約束,來實(shí)現(xiàn)流式讀取文件系統(tǒng)數(shù)據(jù)的目的。40GoalsofHDFSVeryLargeDistributedFileSystem –10Knodes,100millionfiles,10PB
AssumesCommodityHardware –Filesarereplicatedtohandlehardwarefailure –DetectfailuresandrecoversfromthemOptimizedforBatchProcessing –Datalocationsexposedsothatcomputationscanmovetowheredataresides –ProvidesveryhighaggregatebandwidthUserSpace,runsonheterogeneousOSHDFS采用master/slave架構(gòu)。一個(gè)HDFS集群是由一個(gè)Namenode和一定數(shù)目的Datanodes組成。Namenode是一個(gè)中心效勞器,負(fù)責(zé)管理文件系統(tǒng)的名字空間(namespace)以及客戶端對(duì)文件的訪問。Namenode執(zhí)行文件系統(tǒng)的名字空間操作,比方翻開、關(guān)閉、重命名文件或目錄。它也負(fù)責(zé)確定數(shù)據(jù)塊到具體Datanode節(jié)點(diǎn)的映射。集群中的Datanode一般是一個(gè)節(jié)點(diǎn)一個(gè),負(fù)責(zé)管理它所在節(jié)點(diǎn)上的存儲(chǔ)。HDFS暴露了文件系統(tǒng)的名字空間,用戶能夠以文件的形式在上面存儲(chǔ)數(shù)據(jù)。從內(nèi)部看,一個(gè)文件其實(shí)被分成一個(gè)或多個(gè)數(shù)據(jù)塊,這些塊存儲(chǔ)在一組Datanode上。Datanode負(fù)責(zé)處理文件系統(tǒng)客戶端的讀寫請(qǐng)求。在Namenode的統(tǒng)一調(diào)度下進(jìn)行數(shù)據(jù)塊的創(chuàng)立、刪除和復(fù)制。43DistributedFileSystemSingleNamespaceforentireclusterDataCoherency –Write-once-read-manyaccessmodel –ClientcanonlyappendtoexistingfilesFilesarebrokenupintoblocks –Typically128MBblocksize –EachblockreplicatedonmultipleDataNodesIntelligentClient –Clientcanfindlocationofblocks –ClientaccessesdatadirectlyfromDataNodeNameNodeMetadataMeta-datainMemory –Theentiremetadataisinmainmemory –Nodemandpagingofmeta-dataTypesofMetadata –Listoffiles –ListofBlocksforeachfile –ListofDataNodesforeachblock –Fileattributes,e.gcreationtime,replicationfactorATransactionLog –Recordsfilecreations,filedeletions.EtcNamenode全權(quán)管理數(shù)據(jù)塊的復(fù)制,它周期性地從集群中的每個(gè)Datanode接收心跳信號(hào)和塊狀態(tài)報(bào)告(Blockreport)。集群中單一Namenode的結(jié)構(gòu)大大簡(jiǎn)化了系統(tǒng)的架構(gòu)。Namenode是所有HDFS元數(shù)據(jù)的仲裁者和管理者,這樣,用戶數(shù)據(jù)永遠(yuǎn)不會(huì)流過Namenode。DataNodeABlockServer –Storesdatainthelocalfilesystem(e.g.ext3) –Storesmeta-dataofablock(e.g.CRC) –Servesdataandmeta-datatoClientsBlockReport –PeriodicallysendsareportofallexistingblockstotheNameNodeFacilitatesPipeliningofData –ForwardsdatatootherspecifiedDataNodesBlockPlacementCurrentStrategy
--Onereplicaonlocalnode --Secondreplicaonaremoterack --Thirdreplicaonsameremoterack --AdditionalreplicasarerandomlyplacedClientsreadfromnearestreplicaWouldliketomakethispolicypluggable在大多數(shù)情況下,副本系數(shù)是3HDFS的存放策略是將一個(gè)副本存放在本地機(jī)架的節(jié)點(diǎn)上,一個(gè)副本放在同一機(jī)架的另一個(gè)節(jié)點(diǎn)上,最后一個(gè)副本放在不同機(jī)架的節(jié)點(diǎn)上。這種策略減少了機(jī)架間的數(shù)據(jù)傳輸,這就提高了寫操作的效率。機(jī)架的錯(cuò)誤遠(yuǎn)遠(yuǎn)比節(jié)點(diǎn)的錯(cuò)誤少,所以這個(gè)策略不會(huì)影響到數(shù)據(jù)的可靠性和可用性。于此同時(shí),因?yàn)閿?shù)據(jù)塊只放在兩個(gè)〔不是三個(gè)〕不同的機(jī)架上,所以此策略減少了讀取數(shù)據(jù)時(shí)需要的網(wǎng)絡(luò)傳輸總帶寬。在這種策略下,副本并不是均勻分布在不同的機(jī)架上。三分之一的副本在一個(gè)節(jié)點(diǎn)上,三分之二的副本在一個(gè)機(jī)架上,其他副本均勻分布在剩下的機(jī)架中,這一策略在不損害數(shù)據(jù)可靠性和讀取性能的情況下改進(jìn)了寫的性能。48DataCorrectnessUseChecksumstovalidatedata –UseCRC32FileCreation –Clientcomputeschecksumper512byte –DataNodestoresthechecksumFileaccess –ClientretrievesthedataandchecksumfromDataNode –IfValidationfails,ClienttriesotherreplicasNameNodeFailureAsinglepointoffailureTransactionLogstoredinmultipledirectories –Adirectoryonthelocalfilesystem –Adirectoryonaremotefilesystem(NFS/CIFS)HDFS未實(shí)現(xiàn)的功能總結(jié):
1、
文件追加寫入,這個(gè)功能近期內(nèi)不會(huì)實(shí)現(xiàn),沒有這個(gè)功能會(huì)引起當(dāng)文件尚未關(guān)閉的時(shí)候,數(shù)據(jù)效勞器死機(jī)或者目錄效勞器死機(jī),會(huì)引起文件文件喪失,并且不可后續(xù)恢復(fù)寫入。
2、
系統(tǒng)快照,一個(gè)全系統(tǒng)的快照功能,如果沒有這個(gè)功能就不能實(shí)現(xiàn)文件系統(tǒng)的回滾操作。
3、
集群負(fù)載均衡,均衡策略暫時(shí)沒有實(shí)現(xiàn),有幾個(gè)策略十分有用,比方在某臺(tái)數(shù)據(jù)機(jī)可能磁盤過低的時(shí)候,把該數(shù)據(jù)機(jī)上面的一些數(shù)據(jù)轉(zhuǎn)移到還有很多空間剩余的數(shù)據(jù)機(jī)上;當(dāng)某個(gè)文件突然被大量讀寫的時(shí)候,動(dòng)態(tài)增加該文件的冗余因子,并且數(shù)據(jù)塊復(fù)制到更多的數(shù)據(jù)機(jī)上面,以提高讀取性能。
4、
文件系統(tǒng)的用戶權(quán)限,這個(gè)也是近期內(nèi)不會(huì)實(shí)現(xiàn)的了。
5、訪問權(quán)限,現(xiàn)在是無限制訪問的,沒有訪問權(quán)限控制。
51分布式數(shù)據(jù)庫技術(shù)定義特點(diǎn)分類體系結(jié)構(gòu)分片與分布模式結(jié)構(gòu)事務(wù)模型分布式數(shù)據(jù)庫的定義分布式數(shù)據(jù)庫的定義通俗地說是物理上分散而邏輯上集中的數(shù)據(jù)庫系統(tǒng)。使用計(jì)算機(jī)網(wǎng)絡(luò)將地理位置分散而管理和控制又需要不同程度集中的多個(gè)邏輯單位連接起來,共同組成一個(gè)統(tǒng)一的數(shù)據(jù)庫系統(tǒng)??梢钥醋魇菙?shù)據(jù)處理即數(shù)據(jù)庫系統(tǒng)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的結(jié)合。分布式數(shù)據(jù)庫的特點(diǎn)物理分布性邏輯整體性,不同于分散式數(shù)據(jù)庫,有全局?jǐn)?shù)據(jù)庫和局部數(shù)據(jù)庫的概念。站點(diǎn)自治性:場(chǎng)地自治,各站點(diǎn)數(shù)據(jù)由本地DBMS管理,具有自治處理能力,完本錢地應(yīng)用。這一點(diǎn)與多機(jī)系統(tǒng)不同。數(shù)據(jù)分布透明性:分片透明、數(shù)據(jù)復(fù)制透明、數(shù)據(jù)位置透明。集中與自治相結(jié)合的控制機(jī)制:局部共享和全局共享一定的數(shù)據(jù)冗余:可靠、可用,單個(gè)站點(diǎn)故障不會(huì)影響整體。不利于更新,維護(hù)本錢高,查詢速度快。事務(wù)管理的分布性:全局事務(wù)可以分解為假設(shè)干子事務(wù)。事務(wù)的ACID特性受到考驗(yàn)。分布式數(shù)據(jù)庫的特點(diǎn)分布式數(shù)據(jù)庫的12條準(zhǔn)那么本地自治性不依賴于中心站點(diǎn)可連續(xù)操作性位置獨(dú)立性數(shù)據(jù)分片獨(dú)立性數(shù)據(jù)復(fù)制獨(dú)立性分布式查詢處理分布式事務(wù)處理硬件獨(dú)立性操作系統(tǒng)獨(dú)立性網(wǎng)絡(luò)獨(dú)立性數(shù)據(jù)庫管理系統(tǒng)獨(dú)立性單個(gè)DBMS的本地運(yùn)算不受多數(shù)據(jù)庫系統(tǒng)中其它DBMS的參加而影響。單個(gè)DBMS處理查詢和優(yōu)化查詢的方式不受訪問多數(shù)據(jù)庫的全局查詢執(zhí)行的影響。系統(tǒng)已執(zhí)行或操作在單個(gè)DBMS參加或離開多數(shù)據(jù)庫聯(lián)盟時(shí)不受危害。分布式數(shù)據(jù)庫的分類按局部數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)模型分類同構(gòu)型〔homogenous〕DDBS:數(shù)據(jù)模型相同同構(gòu)同質(zhì)型:各站點(diǎn)上的數(shù)據(jù)模型〔關(guān)系、網(wǎng)狀、層次〕相同,且都是同一種DBMS。同構(gòu)異質(zhì)性:各站點(diǎn)上的數(shù)據(jù)模型〔關(guān)系、網(wǎng)狀、層次〕相同,但不是同一種DBMS。異構(gòu)型〔heterogenous〕DDBS:各站點(diǎn)上的數(shù)據(jù)模型不同。分布式數(shù)據(jù)庫的分類按分布式數(shù)據(jù)庫系統(tǒng)的全局控制類型分類全局控制集中型DDBS:全局控制機(jī)制和全局?jǐn)?shù)據(jù)字典位于一個(gè)中心點(diǎn),中心點(diǎn)完成全局事務(wù)的協(xié)調(diào)和局部數(shù)據(jù)庫的轉(zhuǎn)換全局控制分散型DDBS:全局控制機(jī)制和全局?jǐn)?shù)據(jù)字典位于各個(gè)站點(diǎn)上,每個(gè)站點(diǎn)都能完成全局事務(wù)的協(xié)調(diào)和局部數(shù)據(jù)庫的轉(zhuǎn)換,每個(gè)站點(diǎn)既是全局事務(wù)的協(xié)調(diào)者,也是參與者。全局控制可變型DDBS:主從型DDBS,站點(diǎn)有兩類:主站點(diǎn)和從站點(diǎn),主戰(zhàn)點(diǎn)上包含全局控制機(jī)制和全局?jǐn)?shù)據(jù)字典;輔助站點(diǎn)不包含全局控制機(jī)制和全局?jǐn)?shù)據(jù)字典分布式數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)全局用戶局部用戶GDDGDBLDDLDBCMGDBMSLDBMS全局用戶局部用戶GDDGDBLDDLDBCMGDBMSLDBMS全局用戶局部用戶GDDGDBLDDLDBCMGDBMSLDBMS網(wǎng)絡(luò)包括:局部DB、全局DB局部DBMS和全局DBMS局部DBA和全局DBA局部數(shù)據(jù)字典LDD和全局?jǐn)?shù)據(jù)字典GDD通信模塊CM分片:又稱為數(shù)據(jù)分割,有三種分片方式水平分片:按特定條件將全局關(guān)系劃分成假設(shè)干互不相交的片段。通過對(duì)全局關(guān)系進(jìn)行選擇運(yùn)算得到。垂直分片:把全局關(guān)系的屬性集分成假設(shè)干子集。通過對(duì)全局關(guān)系進(jìn)行投影運(yùn)算獲得?;旌戏制荷鲜鰞煞N方法的混合。分片規(guī)那么完備性條件:不多,即全局關(guān)系的所有數(shù)據(jù)必須映射到各個(gè)片段中,不允許有屬于全局關(guān)系的數(shù)據(jù)不屬于它的任何一個(gè)片段。可重構(gòu)條件:不少,即必須保證能夠由同一個(gè)全局關(guān)系的各個(gè)片段來重構(gòu)該全局關(guān)系。水平:合并垂直:連接不相交條件:一個(gè)全局關(guān)系被分割后所得的各個(gè)數(shù)據(jù)片段不重疊。分布式數(shù)據(jù)庫中的分片與分布分布:根據(jù)需要將數(shù)據(jù)劃分成邏輯片段,按照某種策略將這些片段分散存儲(chǔ)在各個(gè)站點(diǎn)上,策略:集中式:所有數(shù)據(jù)片段放在同一個(gè)站點(diǎn)上。對(duì)數(shù)據(jù)控制和管理容易數(shù)據(jù)一致性和完整性能夠得到保證系統(tǒng)對(duì)數(shù)據(jù)站點(diǎn)依賴過重?cái)?shù)據(jù)站點(diǎn)故障將導(dǎo)致整個(gè)系統(tǒng)崩潰檢索效率低分割式:所有數(shù)據(jù)只有一份,經(jīng)過邏輯分割后形成多個(gè)片段,每個(gè)片段放在某個(gè)特定的站點(diǎn)上。充分利用各個(gè)站點(diǎn)的存儲(chǔ)能力每個(gè)站點(diǎn)可自治檢索和修改數(shù)據(jù),并發(fā)能力強(qiáng)局部站點(diǎn)故障,系統(tǒng)仍能運(yùn)行,可靠性高全局查詢和修改,響應(yīng)時(shí)間長(zhǎng),網(wǎng)絡(luò)通信代價(jià)較大全復(fù)制式:全局?jǐn)?shù)據(jù)有多個(gè)副本,每個(gè)站點(diǎn)上都有一個(gè)完整的數(shù)據(jù)副本??煽啃愿卟樵兯俣瓤鞌?shù)據(jù)同步困難系統(tǒng)冗余大混合式:全部數(shù)據(jù)被分為假設(shè)干個(gè)子集,每個(gè)子集安置在不同的站點(diǎn)上,但任一站點(diǎn)都不保存全部數(shù)據(jù)。靈活性好系統(tǒng)效率高復(fù)雜分布式數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)全局DBMSDB局部?jī)?nèi)模式局部概念模式DB局部?jī)?nèi)模式局部概念模式局部DBMS分配模式分片模式全局概念模式全局外模式全局外模式全局外模式集中式數(shù)據(jù)庫分布式數(shù)據(jù)庫全局外模式:全局應(yīng)用的用戶視圖。全局概念模式:描述分布式數(shù)據(jù)庫中全局?jǐn)?shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)特性,是分布式數(shù)據(jù)庫的全局概念視圖。分片模式:描述全局?jǐn)?shù)據(jù)的邏輯劃分。分配模式:根據(jù)選定的數(shù)據(jù)分配策略,定義各片段的物理存放位置,確定是否冗余及冗余的程度。局部概念模式:是全局概念模式的子集,由分配在同一站點(diǎn)上的一個(gè)或多個(gè)邏輯片段組成局部?jī)?nèi)模式:是分布式數(shù)據(jù)庫關(guān)于物理數(shù)據(jù)庫的描述,跟集中式內(nèi)模式類似,但是不僅包含本站點(diǎn)數(shù)據(jù)的存儲(chǔ)描述,還包括全局?jǐn)?shù)據(jù)在本站點(diǎn)的存儲(chǔ)描述全局關(guān)系R的邏輯片段與物理影像分布式事務(wù)模型事務(wù)的ACID局部事務(wù)、全局事務(wù)局部事務(wù)管理器保證本地節(jié)點(diǎn)上執(zhí)行的事務(wù)的ACID本次事務(wù)可能是全局事務(wù)的一局部維護(hù)一個(gè)易于恢復(fù)的日志參與適當(dāng)?shù)牟l(fā)控制事務(wù)協(xié)調(diào)器協(xié)調(diào)該節(jié)點(diǎn)上發(fā)起的事務(wù)〔全局或局部〕的執(zhí)行啟動(dòng)事務(wù)的執(zhí)行分發(fā)事務(wù)協(xié)調(diào)事務(wù)的終止〔在所有節(jié)點(diǎn)上提交或中止〕分布式事務(wù)模型67TC1TCnTMnTM1事務(wù)管理器事務(wù)協(xié)調(diào)器68故障節(jié)點(diǎn)故障消息喪失網(wǎng)絡(luò)故障提交原子性事務(wù)T必須要么在所有節(jié)點(diǎn)上提交,要么在所有節(jié)點(diǎn)上都中止兩階段提交三階段提交69兩階段提交階段1〔決定階段〕協(xié)調(diào)器prepareT節(jié)點(diǎn)事務(wù)管理器readyT或abortT階段2〔執(zhí)行階段〕收到有一個(gè)abortT,那么abortT收到所有readyT,那么commitT節(jié)點(diǎn)commitT并寫Log后,發(fā)出acknowledgeT收到所有acknowledge,那么completeT阻塞:協(xié)調(diào)器發(fā)出prepareT后故障,處于不定狀態(tài)雙方針對(duì)超時(shí)均可重發(fā)70三階段提交階段1同兩階段方式階段2收到有一個(gè)abortT,那么abortT收到所有readyT,那么precommitT節(jié)點(diǎn)precommitT之后,寫Log,發(fā)出acknowledgeT階段3收到所有ack,那么commitT節(jié)點(diǎn)commit后,發(fā)出ackT收到所有ackT后,completeT恢復(fù)只要有一個(gè)具有commitT,那么提交只要有一個(gè)precommitT,已readyT,可提交都沒有收到precommitT,那么回滾71協(xié)議的比較兩階段提交有阻塞的可能,使用較廣三階段提交對(duì)于網(wǎng)絡(luò)鏈路故障的處理能力偏弱72HbaseHbase是一個(gè)分布式開源數(shù)據(jù)庫,基于Hadoop分布式文件系統(tǒng),模仿并提供了基于Google文件系統(tǒng)的Bigtable數(shù)據(jù)庫的所有功能。為什么需要HBASE數(shù)據(jù)庫系統(tǒng)已無法適應(yīng)大型分布式數(shù)據(jù)存儲(chǔ)的需要改進(jìn)的關(guān)系數(shù)據(jù)庫〔副本、分區(qū)等〕難于安裝與維護(hù)關(guān)系模型對(duì)數(shù)據(jù)的操作使數(shù)據(jù)的存貯變得復(fù)雜主要特點(diǎn)HBASE從設(shè)計(jì)理念上就為可擴(kuò)展做好了充分準(zhǔn)備Column-oriented空間的擴(kuò)展只需要參加存儲(chǔ)結(jié)點(diǎn)使用‘表’的概念,但不同于關(guān)系數(shù)據(jù)庫,不支持SQL它又不適合事務(wù)處理實(shí)質(zhì)上是一張極大的、非常稀疏的,存儲(chǔ)在分布式文件系統(tǒng)上的表7374HBase歷史2006年底由PowerSet的ChadWalters和JimKellerman發(fā)起2021年成為ApacheHadoop的一個(gè)子工程現(xiàn)已作為產(chǎn)品被使用WorldLingoStreamyOpenPlacesYahooAdobeHBASE用例-WebTable存儲(chǔ)抓取網(wǎng)頁和相關(guān)信息每個(gè)頁面對(duì)應(yīng)一行,是個(gè)有百萬行的大表要基于此表進(jìn)行分析與解析并由搜索引擎對(duì)關(guān)鍵字進(jìn)行索引表需要并發(fā)地被眾多網(wǎng)頁抓取程序隨機(jī)地訪問以及更新數(shù)據(jù)表內(nèi)容也要作為網(wǎng)頁實(shí)時(shí)緩存被大量用戶隨機(jī)訪問邏輯視圖RowKeyTimeStampColumnContentsColumnAnchorColumn“mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“<html>..“Text/htmlT5“<html>..“t3“<html>..“RowKeyRowKey與nosql數(shù)據(jù)庫們一樣,rowkey是用來檢索記錄的主鍵。訪問hbasetable中的行,只有三種方式:1通過單個(gè)rowkey訪問2通過rowkey的range3全表掃描Rowkey行鍵(Rowkey)可以是任意字符串(最大長(zhǎng)度是64KB,實(shí)際應(yīng)用中長(zhǎng)度一般為10-100bytes),在hbase內(nèi)部,rowkey保存為字節(jié)數(shù)組。存儲(chǔ)時(shí),數(shù)據(jù)按照Rowkey的字典序(byteorder)排序存儲(chǔ)。設(shè)計(jì)key時(shí),要充分排序存儲(chǔ)這個(gè)特性,將經(jīng)常一起讀取的行存儲(chǔ)放到一起。(位置相關(guān)性)注意:行的一次讀寫是原子操作(不管一次讀寫多少列)。這個(gè)設(shè)計(jì)決策能夠使用戶很容易的理解程序在對(duì)同一個(gè)行進(jìn)行并發(fā)更新操作時(shí)的行為。
78數(shù)據(jù)模型-行每行數(shù)據(jù)有一可排序的關(guān)鍵字和任意列項(xiàng)字符串、整數(shù)、二進(jìn)制串甚至與串行化的結(jié)構(gòu)都可以作為行鍵表按照行鍵的“逐字節(jié)排序〞順序?qū)π羞M(jìn)行有序化處理表內(nèi)數(shù)據(jù)非?!∈琛?,不同的行的列的數(shù)完全目可以大不相同可以只對(duì)一行上“鎖〞對(duì)行的寫操作是始終是“原子〞的數(shù)據(jù)模型-行RowKeyTimeStampColumnContentsColumnAnchorColumn“mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“<html>..“Text/htmlT5“<html>..“t3“<html>..“行鍵列列數(shù)據(jù)模型-列列必須用‘族’(family)來定義任意一列有如下形式“族:標(biāo)簽〞其中,族和標(biāo)簽都可為任意形式的串物理上將同“族〞數(shù)據(jù)存儲(chǔ)在一起數(shù)據(jù)可通過時(shí)間戳區(qū)分版本列族
hbase表中的每個(gè)列,都?xì)w屬與某個(gè)列族。列族是表的chema的一局部(而列不是),必須在使用表之前定義。列名都以列族作為前綴。例如courses:history,courses:math
都屬于courses這個(gè)列族。
訪問控制、磁盤和內(nèi)存的使用統(tǒng)計(jì)都是在列族層面進(jìn)行的。實(shí)際應(yīng)用中,列族上的控制權(quán)限能幫助我們管理不同類型的應(yīng)用:我們?cè)试S一些應(yīng)用可以添加新的根本數(shù)據(jù)、一些應(yīng)用可以讀取根本數(shù)據(jù)并創(chuàng)立繼承的列族、一些應(yīng)用那么只允許瀏覽數(shù)據(jù)〔甚至可能因?yàn)殡[私的原因不能瀏覽所有數(shù)據(jù)〕。
82列族
hbase表中的每個(gè)列,都?xì)w屬與某個(gè)列族。列族是表的chema的一局部(而列不是),必須在使用表之前定義。列名都以列族作為前綴。例如courses:history,courses:math
都屬于courses這個(gè)列族。
訪問控制、磁盤和內(nèi)存的使用統(tǒng)計(jì)都是在列族層面進(jìn)行的。實(shí)際應(yīng)用中,列族上的控制權(quán)限能幫助我們管理不同類型的應(yīng)用:我們?cè)试S一些應(yīng)用可以添加新的根本數(shù)據(jù)、一些應(yīng)用可以讀取根本數(shù)據(jù)并創(chuàng)立繼承的列族、一些應(yīng)用那么只允許瀏覽數(shù)據(jù)〔甚至可能因?yàn)殡[私的原因不能瀏覽所有數(shù)據(jù)〕。
83數(shù)據(jù)模型-列RowKeyTimeStampColumnContentsColumnAnchorColumn“mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“<html>..“Text/htmlT5“<html>..“t3“<html>..“族標(biāo)簽物理視圖RowKeyTimeStampColumn:ContentsCn.wwwT6“<html>..”T5“<html>..”T3“<html>..”RowKeyTimeStampColumn:AnchorCn.wwwT9Anchor:CNNT5Anchor:my.look.caCNN.COMRowKeyTimeStampColumn:mimeCn.wwwT6text/htmlHTable小結(jié)RowKeyTimeStampColumnContentsColumnAnchorColumn“mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“<html>..“Text/htmlT5“<html>..“t3“<html>..“HBASE物理存儲(chǔ)1已經(jīng)提到過,Table中的所有行都按照rowkey的字典序排列。2Table在行的方向上分割為多個(gè)Hregion。3region按大小分割的,每個(gè)表一開始只有一個(gè)region,隨著數(shù)據(jù)不斷插入表,region不斷增大,當(dāng)增大到一個(gè)閥值的時(shí)候,Hregion就會(huì)等分會(huì)兩個(gè)新的Hregion。當(dāng)table中的行不斷增多,就會(huì)有越來越多的Hregion。
874HRegion是Hbase中分布式存儲(chǔ)和負(fù)載均衡的最小單元。最小單元就表示不同的Hregion可以分布在不同的HRegionserver上。但一個(gè)Hregion是不會(huì)拆分到多個(gè)server上的。
885HRegion雖然是分布式存儲(chǔ)的最小單元,但并不是存儲(chǔ)的最小單元。HRegion由一個(gè)或者多個(gè)Store組成,每個(gè)store保存一個(gè)columnsfamily。每個(gè)Strore又由一個(gè)memStore和0至多個(gè)StoreFile組成。StoreFile以HFile格式保存在HDFS上。
8990HFile分為六個(gè)局部:DataBlock段–保存表中的數(shù)據(jù),這局部可以被壓縮MetaBlock段(可選的)–保存用戶自定義的kv對(duì),可以被壓縮。FileInfo段–Hfile的元信息,不被壓縮,用戶也可以在這一局部添加自己的元信息。DataBlockIndex段–DataBlock的索引。每條索引的key是被索引的block的第一條記錄的key。MetaBlockIndex段(可選的)–MetaBlock的索引。Trailer–這一段是定長(zhǎng)的。保存了每一段的偏移量,讀取一個(gè)HFile時(shí),會(huì)首先讀取Trailer,Trail
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于節(jié)約糧食主題國旗下講話稿范文(13篇)
- 新型風(fēng)電軸承材料研究-洞察分析
- 填料對(duì)混凝土耐久性的影響-洞察分析
- 土壤水勢(shì)時(shí)空演變-洞察分析
- 虛擬仿真技術(shù)在職業(yè)教育中的應(yīng)用-洞察分析
- 心理健康與生活質(zhì)量-第1篇-洞察分析
- 物聯(lián)網(wǎng)數(shù)據(jù)質(zhì)量評(píng)估與治理-洞察分析
- 碳捕集與氣候變化應(yīng)對(duì)-洞察分析
- 水資源跨區(qū)域調(diào)配與協(xié)同管理-洞察分析
- 醫(yī)院醫(yī)生調(diào)換科室申請(qǐng)書(8篇)
- 自來水的供水環(huán)保與生態(tài)協(xié)調(diào)
- 羽毛球館運(yùn)營管理指南
- 糧油倉儲(chǔ)管理員職業(yè)等級(jí)考試知識(shí)題
- 2024年度首診負(fù)責(zé)制度課件
- 教師校園網(wǎng)絡(luò)安全培訓(xùn)
- (26)-F10.1伊斯蘭教概述
- 第四講 變電站倒閘操作
- 高鐵站消防培訓(xùn)課件
- 《雷達(dá)發(fā)射機(jī)》課件2
- 廣東省深圳市坪山區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試題(含解析)
- 專題5.5 一次函數(shù)的幾何綜合(壓軸題專項(xiàng)講練)(浙教版)(解析版)
評(píng)論
0/150
提交評(píng)論