




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Ch.3.GoogleMapReduce基本構(gòu)架南京大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系主講人:黃宜華2011年春季學(xué)期MapReduce海量數(shù)據(jù)并行處理鳴謝:本課程得到Google公司(北京)中國大學(xué)合作部精品課程計(jì)劃資助Ch.3.
GoogleMapReduce基本構(gòu)架1.MapReduce的基本模型和處理思想2.GoogleMapReduce的基本工作原理3.分布式文件系統(tǒng)GFS的基本工作原理4.分布式結(jié)構(gòu)化數(shù)據(jù)表BigTable三個(gè)層面上的基本構(gòu)思如何對付大數(shù)據(jù)處理:分而治之
對相互間不具有計(jì)算依賴關(guān)系的大數(shù)據(jù),實(shí)現(xiàn)并行最自然的辦法就是采取分而治之的策略上升到抽象模型:Mapper與Reducer
MPI等并行計(jì)算方法缺少高層并行編程模型,為了克服這一缺陷,MapReduce借鑒了Lisp函數(shù)式語言中的思想,用Map和Reduce兩個(gè)函數(shù)提供了高層的并行編程抽象模型上升到構(gòu)架:統(tǒng)一構(gòu)架,為程序員隱藏系統(tǒng)層細(xì)節(jié)
MPI等并行計(jì)算方法缺少統(tǒng)一的計(jì)算框架支持,程序員需要考慮數(shù)據(jù)存儲(chǔ)、劃分、分發(fā)、結(jié)果收集、錯(cuò)誤恢復(fù)等諸多細(xì)節(jié);為此,MapReduce設(shè)計(jì)并提供了統(tǒng)一的計(jì)算框架,為程序員隱藏了絕大多數(shù)系統(tǒng)層面的處理細(xì)節(jié)1.MapReduce的基本模型和處理思想大數(shù)據(jù)分而治之
MapReduce的基本模型和處理思想大數(shù)據(jù)計(jì)算任務(wù)子任務(wù)子任務(wù)子任務(wù)子任務(wù)……任務(wù)劃分計(jì)算結(jié)果結(jié)果合并建立Map和Reduce抽象模型典型的流式大數(shù)據(jù)問題的特征大量數(shù)據(jù)記錄/元素進(jìn)行重復(fù)處理對每個(gè)數(shù)據(jù)記錄/元素作感興趣的處理、獲取感興趣的中間結(jié)果信息排序和整理中間結(jié)果以利后續(xù)處理收集整理中間結(jié)果產(chǎn)生最終結(jié)果輸出MapReduce的基本模型與處理思想MapReduce關(guān)鍵思想:為大數(shù)據(jù)處理過程中的兩個(gè)主要處理階段
提煉為一種抽象的操作機(jī)制建立Map和Reduce抽象模型借鑒函數(shù)式程序設(shè)計(jì)語言Lisp中的思想,定義了Map和Reduce兩個(gè)抽象的操作函數(shù):map:(k1;v1)
[(k2;v2)]reduce:
(k2;[v2])
[(k3;v3)]特點(diǎn):描述了對一組數(shù)據(jù)處理的兩個(gè)階段的抽象操作僅僅描述了需要做什么,不需要關(guān)注怎么做MapReduce的基本模型與處理思想上升到構(gòu)架--自動(dòng)并行化并隱藏低層細(xì)節(jié)海量數(shù)據(jù)存儲(chǔ)……數(shù)據(jù)劃分MapMapMapMap初始kv鍵值對初始kv鍵值對初始kv鍵值對初始kv鍵值對中間結(jié)果(k1,val)(k2,val)(k3,val)(k1,val)(k3,val)(k2,val)(k3,val)(k1,val)(k2,val)(k3,val)Barrier:AggregationandShuffleReduceReduceReduce(k1,values)(k2,values)(k3,values)計(jì)算結(jié)果(K1,val)(K2,val)(K3,val)MapReduce的基本模型與處理思想Barrier(good,1)(good,1)(good,2)(good,1)PartitionerPartitionerPartitionerPartitioner(is,1)(is,1)(is,1)(has,1)(weather,1)(weather,1)(weather,1)(the,1)(today,1)(today,1)上升到構(gòu)架--自動(dòng)并行化并隱藏低層細(xì)節(jié)海量數(shù)據(jù)存儲(chǔ)計(jì)算結(jié)果……數(shù)據(jù)劃分Map初始kv鍵值對初始kv鍵值對初始kv鍵值對初始kv鍵值對MapMapMap中間結(jié)果(the,1)(weather,1)(is,1)(good,1)CombinerCombinerCombinerCombiner(the,1)(weather,1)(is,1)(good,1)(today,1)(is,1)(good,1)(good,1)(weather,1)(is,1)(good,1)(today,1)(has,1)(good,1)(weather,1)(today,1)(is,1)(good,1)(good,2)(weather,1)(is,1)(today,1)(has,1)(good,1)(weather,1)ReduceReduceReduce(good,5)(is,3)(has,1)(weather,3)(the,1)(today,2)Combiner和PartitionerMapReduce的基本模型與處理思想GoogleMapReduce并行處理的基本過程
2.GoogleMapReduce的基本工作原理CitefromDeanandGhemawat(OSDI2004)1.有一個(gè)待處理的大數(shù)據(jù),被劃分為大小相同的數(shù)據(jù)塊(如64MB),及與此相應(yīng)的用戶作業(yè)程序2.系統(tǒng)中有一個(gè)負(fù)責(zé)調(diào)度的主節(jié)點(diǎn)(Master),以及數(shù)據(jù)Map和Reduce工作節(jié)點(diǎn)(Worker)GoogleMapReduce并行處理的基本過程
GoogleMapReduce的基本工作原理CitefromDeanandGhemawat(OSDI2004)3.用戶作業(yè)程序提交給主節(jié)點(diǎn)4.主節(jié)點(diǎn)為作業(yè)程序?qū)ふ液团鋫淇捎玫腗ap節(jié)點(diǎn),并將程序傳送給map節(jié)點(diǎn)5.主節(jié)點(diǎn)也為作業(yè)程序?qū)ふ液团鋫淇捎玫腞educe節(jié)點(diǎn),并將程序傳送給Reduce節(jié)點(diǎn)GoogleMapReduce并行處理的基本過程
GoogleMapReduce的基本工作原理CitefromDeanandGhemawat(OSDI2004)6.主節(jié)點(diǎn)啟動(dòng)每個(gè)Map節(jié)點(diǎn)執(zhí)行程序,每個(gè)map節(jié)點(diǎn)盡可能讀取本地或本機(jī)架的數(shù)據(jù)進(jìn)行計(jì)算7.每個(gè)Map節(jié)點(diǎn)處理讀取的數(shù)據(jù)塊,并做一些數(shù)據(jù)整理工作(combining,sorting等)并將中間結(jié)果存放在本地;同時(shí)通知主節(jié)點(diǎn)計(jì)算任務(wù)完成并告知中間結(jié)果數(shù)據(jù)存儲(chǔ)位置GoogleMapReduce并行處理的基本過程
GoogleMapReduce的基本工作原理CitefromDeanandGhemawat(OSDI2004)8.主節(jié)點(diǎn)等所有Map節(jié)點(diǎn)計(jì)算完成后,開始啟動(dòng)Reduce節(jié)點(diǎn)運(yùn)行;Reduce節(jié)點(diǎn)從主節(jié)點(diǎn)所掌握的中間結(jié)果數(shù)據(jù)位置信息,遠(yuǎn)程讀取這些數(shù)據(jù)9.Reduce節(jié)點(diǎn)計(jì)算結(jié)果匯總輸出到一個(gè)結(jié)果文件即獲得整個(gè)處理結(jié)果GoogleMapReduce并行處理的基本過程
GoogleMapReduce的基本工作原理CitefromDeanandGhemawat(OSDI2004)完整計(jì)算過程GoogleMapReduce的基本工作原理失效處理主節(jié)點(diǎn)失效主節(jié)點(diǎn)中會(huì)周期性地設(shè)置檢查點(diǎn)(checkpoint),檢查整個(gè)計(jì)算作業(yè)的執(zhí)行情況,一旦某個(gè)任務(wù)失效,可以從最近有效的檢查點(diǎn)開始重新執(zhí)行,避免從頭開始計(jì)算的時(shí)間浪費(fèi)。工作節(jié)點(diǎn)失效工作節(jié)點(diǎn)失效是很普遍發(fā)生的,主節(jié)點(diǎn)會(huì)周期性地給工作節(jié)點(diǎn)發(fā)送檢測命令,如果工作節(jié)點(diǎn)沒有回應(yīng),這認(rèn)為該工作節(jié)點(diǎn)失效,主節(jié)點(diǎn)將終止該工作節(jié)點(diǎn)的任務(wù)并把失效的任務(wù)重新調(diào)度到其它工作節(jié)點(diǎn)上重新執(zhí)行
GoogleMapReduce的基本工作原理帶寬優(yōu)化問題
大量的鍵值對數(shù)據(jù)在傳送給Reduce節(jié)點(diǎn)時(shí)會(huì)引起較大的通信帶寬開銷。解決方案每個(gè)Map節(jié)點(diǎn)處理完成的中間鍵值隊(duì)將由combiner做一個(gè)合并壓縮,即把那些鍵名相同的鍵值對歸并為一個(gè)鍵名下的一組數(shù)值。(good,1)(weather,1)(is,1)(good,1)(good,2)(weather,1)(is,1)combiner
GoogleMapReduce的基本工作原理計(jì)算優(yōu)化問題Reduce節(jié)點(diǎn)必須要等到所有Map節(jié)點(diǎn)計(jì)算計(jì)算才能開始執(zhí)行,因此,如果有一個(gè)計(jì)算量大、或者由于某個(gè)問題導(dǎo)致很慢結(jié)束的Map節(jié)點(diǎn),則會(huì)成為嚴(yán)重的“拖后腿者”。解決方案把一個(gè)Map計(jì)算任務(wù)讓多個(gè)Map節(jié)點(diǎn)同時(shí)做,取最快完成者的計(jì)算結(jié)果。根據(jù)Google的測試,使用了這個(gè)冗余Map節(jié)點(diǎn)計(jì)算方法以后,計(jì)算任務(wù)性能提高40%多!
GoogleMapReduce的基本工作原理用數(shù)據(jù)分區(qū)解決數(shù)據(jù)相關(guān)性問題問題
一個(gè)Reduce節(jié)點(diǎn)上的計(jì)算數(shù)據(jù)可能會(huì)來自多個(gè)Map節(jié)點(diǎn),因此,為了在進(jìn)入Reduce節(jié)點(diǎn)計(jì)算之前,需要把屬于一個(gè)Reduce節(jié)點(diǎn)的數(shù)據(jù)歸并到一起。解決方案在Map階段進(jìn)行了Combining以后,可以根據(jù)一定的策略對Map輸出的中間結(jié)果進(jìn)行分區(qū)(partitioning),這樣既可解決以上數(shù)據(jù)相關(guān)性問題避免Reduce計(jì)算過程中的數(shù)據(jù)通信。例如:有一個(gè)巨大的數(shù)組,其最終結(jié)果需要排序,每個(gè)Map節(jié)點(diǎn)數(shù)據(jù)處理好后,為了避免在每個(gè)Reduce節(jié)點(diǎn)本地排序完成后還需要進(jìn)行全局排序,我們可以使用一個(gè)分區(qū)策略如:(d%R),d為數(shù)據(jù)大小,R為Reduce節(jié)點(diǎn)的個(gè)數(shù),則可根據(jù)數(shù)據(jù)的大小將其劃分到指定數(shù)據(jù)范圍的Reduce節(jié)點(diǎn)上,每個(gè)Reduce將本地?cái)?shù)據(jù)拍好序后即為最終結(jié)果基本問題海量數(shù)據(jù)怎么存儲(chǔ)?數(shù)據(jù)存儲(chǔ)可靠性怎么解決?當(dāng)前主流的分布文件系統(tǒng)有:RedHat的GFSIBM的GPFSSun的Lustre等主要用于對硬件設(shè)施要求很高的高性能計(jì)算或大型數(shù)據(jù)中心;價(jià)格昂貴且缺少完整的數(shù)據(jù)存儲(chǔ)容錯(cuò)解決方案如Lustre只對元數(shù)據(jù)管理提供容錯(cuò)處理,但對于具體的分布存儲(chǔ)節(jié)點(diǎn),可靠性完全依賴于這些分布節(jié)點(diǎn)采用RAID或存儲(chǔ)區(qū)域網(wǎng)(SAN)技術(shù)提供容錯(cuò),一旦分布節(jié)點(diǎn)失效,數(shù)據(jù)就無法恢復(fù)。3.MapReduce分布式文件系統(tǒng)GFS的工作原理GoogleGFS的基本設(shè)計(jì)原則GoogleGFS是一個(gè)基于分布式集群的大型分布式文件系統(tǒng),為MapReduce計(jì)算框架提供低層數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)可靠性支撐;GFS是一個(gè)構(gòu)建在分布節(jié)點(diǎn)本地文件系統(tǒng)之上的一個(gè)邏輯上文件系統(tǒng),它將數(shù)據(jù)存儲(chǔ)在物理上分布的每個(gè)節(jié)點(diǎn)上,但通過GFS將整個(gè)數(shù)據(jù)形成一個(gè)邏輯上整體的文件。MapReduce分布式文件系統(tǒng)GFS的工作原理……GoogleGFSGoogleMapReduceMapReduceApplicationsGoogleGFS的基本設(shè)計(jì)原則廉價(jià)本地磁盤分布存儲(chǔ)
各節(jié)點(diǎn)本地分布式存儲(chǔ)數(shù)據(jù),優(yōu)點(diǎn)是不需要采用價(jià)格較貴的集中式磁盤陣列,容量可隨節(jié)點(diǎn)數(shù)增加自動(dòng)增加多數(shù)據(jù)自動(dòng)備份解決可靠性
采用廉價(jià)的普通磁盤,把磁盤數(shù)據(jù)出錯(cuò)視為常態(tài),用自動(dòng)多數(shù)據(jù)備份存儲(chǔ)解決數(shù)據(jù)存儲(chǔ)可靠性問題為上層的MapReduce計(jì)算框架提供支撐GFS作為向上層MapReduce執(zhí)行框架的底層數(shù)據(jù)存儲(chǔ)支撐,負(fù)責(zé)處理所有的數(shù)據(jù)自動(dòng)存儲(chǔ)和容錯(cuò)處理,因而上層框架不需要考慮低層的數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)容錯(cuò)問題MapReduce分布式文件系統(tǒng)GFS的工作原理GoogleGFS的基本構(gòu)架和工作原理
MapReduce分布式文件系統(tǒng)GFS的工作原理CitefromGhemawatetal.(SOSP2003)GFSMasterChunkServerGoogleGFS的基本構(gòu)架和工作原理GFSMasterMaster上保存了GFS文件系統(tǒng)的三種元數(shù)據(jù)
:命名空間(NameSpace),即整個(gè)分布式文件系統(tǒng)的目錄結(jié)構(gòu)
Chunk與文件名的映射表Chunk副本的位置信息,每一個(gè)Chunk默認(rèn)有3個(gè)副本MapReduce分布式文件系統(tǒng)GFS的工作原理GFSMaster前兩種元數(shù)據(jù)可通過操作日志提供容錯(cuò)處理能力;第3個(gè)元數(shù)據(jù)直接保存在ChunkServer上,Master啟動(dòng)或ChunkServer注冊時(shí)自動(dòng)完成在ChunkServer上元數(shù)據(jù)的生成;因此,當(dāng)Master失效時(shí),只要ChunkServer數(shù)據(jù)保存完好,可迅速恢復(fù)Master上的元數(shù)據(jù)。GoogleGFS的基本構(gòu)架和工作原理GFSChunkServer即用來保存大量實(shí)際數(shù)據(jù)的數(shù)據(jù)服務(wù)器。GFS中每個(gè)數(shù)據(jù)塊劃分缺省為64MB每個(gè)數(shù)據(jù)塊會(huì)分別在3個(gè)(缺省情況下)不同的地方復(fù)制副本;對每一個(gè)數(shù)據(jù)塊,僅當(dāng)3個(gè)副本都更新成功時(shí),才認(rèn)為數(shù)據(jù)保存成功。MapReduce分布式文件系統(tǒng)GFS的工作原理當(dāng)某個(gè)副本失效時(shí),Master會(huì)自動(dòng)將正確的副本數(shù)據(jù)進(jìn)行復(fù)制以保證足夠的副本數(shù)GFS上存儲(chǔ)的數(shù)據(jù)塊副本,在物理上以一個(gè)本地的Linux操作系統(tǒng)的文件形式存儲(chǔ),每一個(gè)數(shù)據(jù)塊再劃分為64KB的子塊,每個(gè)子快有一個(gè)32位的校驗(yàn)和,讀數(shù)據(jù)時(shí)會(huì)檢查校驗(yàn)和以保證使用為失效的數(shù)據(jù)。ChunkServerGoogleGFS的基本構(gòu)架和工作原理數(shù)據(jù)訪問工作過程MapReduce分布式文件系統(tǒng)GFS的工作原理1.在程序運(yùn)行前,數(shù)據(jù)已經(jīng)存儲(chǔ)在GFS文件系統(tǒng)中;程序?qū)嵭袝r(shí)應(yīng)用程序會(huì)告訴GFSServer所要訪問的文件名或者數(shù)據(jù)塊索引是什么GoogleGFS的基本構(gòu)架和工作原理數(shù)據(jù)訪問工作過程MapReduce分布式文件系統(tǒng)GFS的工作原理2.GFSServer根據(jù)文件名會(huì)數(shù)據(jù)塊索引在其文件目錄空間中查找和定位該文件或數(shù)據(jù)塊,并找數(shù)據(jù)塊在具體哪些ChunkServer上;將這些位置信息回送給應(yīng)用程序GoogleGFS的基本構(gòu)架和工作原理數(shù)據(jù)訪問工作過程MapReduce分布式文件系統(tǒng)GFS的工作原理3.應(yīng)用程序根據(jù)GFSServer返回的具體Chunk數(shù)據(jù)塊位置信息,直接訪問相應(yīng)的ChunkServerGoogleGFS的基本構(gòu)架和工作原理數(shù)據(jù)訪問工作過程MapReduce分布式文件系統(tǒng)GFS的工作原理4.應(yīng)用程序根據(jù)GFSServer返回的具體Chunk數(shù)據(jù)塊位置信息直接讀取指定位置的數(shù)據(jù)進(jìn)行計(jì)算處理GoogleGFS的基本構(gòu)架和工作原理數(shù)據(jù)訪問工作過程MapReduce分布式文件系統(tǒng)GFS的工作原理特點(diǎn):應(yīng)用程序訪問具體數(shù)據(jù)時(shí)部需要經(jīng)過GFSMaster,因此,避免了Master成為訪問瓶頸并發(fā)訪問:由于一個(gè)大數(shù)據(jù)會(huì)存儲(chǔ)在不同的ChunkServer中,應(yīng)用程序可實(shí)現(xiàn)并發(fā)訪問GoogleGFS的基本構(gòu)架和工作原理GFS的系統(tǒng)管理技術(shù)大規(guī)模集群安裝技術(shù):如何在一個(gè)成千上萬個(gè)節(jié)點(diǎn)的集群上迅速部署GFS,升級(jí)管理和維護(hù)等故障檢測技術(shù):GFS是構(gòu)建在不可靠的廉價(jià)計(jì)算機(jī)之上的文件系統(tǒng),節(jié)點(diǎn)數(shù)多,故障頻繁,如何快速檢測、定位、恢復(fù)或隔離故障節(jié)點(diǎn)節(jié)點(diǎn)動(dòng)態(tài)加入技術(shù):當(dāng)新的節(jié)點(diǎn)加入時(shí),需要能自動(dòng)安裝和部署GFS節(jié)能技術(shù):服務(wù)器的耗電成本大于購買成本,Google為每個(gè)節(jié)點(diǎn)服務(wù)器配置了蓄電池替代UPS,大大節(jié)省了能耗。MapReduce分布式文件系統(tǒng)GFS的工作原理BigTable的基本作用和設(shè)計(jì)思想
GFS是一個(gè)文件系統(tǒng),難以提供對結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和訪問管理。為此,Google在GFS之上又設(shè)計(jì)了一個(gè)結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)和訪問管理系統(tǒng)—BigTable,為應(yīng)用程序提供比單純的文件系統(tǒng)更方便、更高層的數(shù)據(jù)操作能力Google的很多數(shù)據(jù),包括Web索引、衛(wèi)星圖像數(shù)據(jù)、地圖數(shù)據(jù)等都以結(jié)構(gòu)化形式存放在BigTable中BigTable提供了一定粒度的結(jié)構(gòu)化數(shù)據(jù)操作能力,主要解決一些大型媒體數(shù)據(jù)(Web文檔、圖片等)的結(jié)構(gòu)化存儲(chǔ)問題。但與傳統(tǒng)的關(guān)系數(shù)據(jù)庫相比,其結(jié)構(gòu)化粒度沒有那么高,也沒有事務(wù)處理等能力,因此,它并不是真正意義上的數(shù)據(jù)庫。4.分布式結(jié)構(gòu)化數(shù)據(jù)表BigTableBigTable設(shè)計(jì)動(dòng)機(jī)和目標(biāo)主要?jiǎng)訖C(jī)需要存儲(chǔ)多種數(shù)據(jù) Google提供的服務(wù)很多,序處理的數(shù)據(jù)類型也很多,如URL,網(wǎng)頁,圖片,地圖數(shù)據(jù),email,用戶的個(gè)性化設(shè)置等海量的服務(wù)請求Google是目前世界上最繁忙的系統(tǒng),因此,需要有高性能的請求和數(shù)據(jù)處理能力商用數(shù)據(jù)庫無法適用
在如此龐大的分布集群上難以有效部署商用數(shù)據(jù)庫系統(tǒng),且其難以承受如此巨量的數(shù)據(jù)存儲(chǔ)和操作需求分布式結(jié)構(gòu)化數(shù)據(jù)表BigTableBigTable設(shè)計(jì)動(dòng)機(jī)和目標(biāo)主要設(shè)計(jì)目標(biāo)廣泛的適用性:為一系列服務(wù)和應(yīng)用而設(shè)計(jì)的數(shù)據(jù)存儲(chǔ)系統(tǒng),可滿足對不同類型數(shù)據(jù)的存儲(chǔ)和操作需求很強(qiáng)的可擴(kuò)展性:根據(jù)需要可隨時(shí)自動(dòng)加入或撤銷服務(wù)器節(jié)點(diǎn)高吞吐量數(shù)據(jù)訪問:提供P級(jí)數(shù)據(jù)存儲(chǔ)能力,每秒數(shù)百萬次的訪問請求高可用性和容錯(cuò)性:保證系統(tǒng)在各種情況下度能正常運(yùn)轉(zhuǎn),服務(wù)不中斷自動(dòng)管理能力:自動(dòng)加入和撤銷服務(wù)器,自動(dòng)負(fù)載平衡簡單性:系統(tǒng)設(shè)計(jì)盡量簡單以減少復(fù)雜性和出錯(cuò)率分布式結(jié)構(gòu)化數(shù)據(jù)表BigTableBigTable數(shù)據(jù)模型BigTable主要是一個(gè)分布式多維表,表中的數(shù)據(jù)通過:一個(gè)行關(guān)鍵字(rowkey)一個(gè)列關(guān)鍵字(columnkey)一個(gè)時(shí)間戳(timestamp)進(jìn)行索引和查詢定位的。BigTable對存儲(chǔ)在表中的數(shù)據(jù)不做任何解釋,一律視為字符串,具體數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)有用戶自行定義。BigTable查詢模型
(row:string,column:string,time:int64)結(jié)果數(shù)據(jù)字符串支持查詢、插入和刪除操作分布式結(jié)構(gòu)化數(shù)據(jù)表BigTableBigTable數(shù)據(jù)模型BigTable數(shù)據(jù)存儲(chǔ)格式行(Row):大小不超過64KB的任意字符串。表中的數(shù)據(jù)都是根據(jù)行關(guān)鍵字進(jìn)行排序的。n.www就是一個(gè)行關(guān)鍵字,指明一行存儲(chǔ)數(shù)據(jù)。URL地址倒排好處是:1)同一地址的網(wǎng)頁將被存儲(chǔ)在表中連續(xù)的位置,便于查找;2)倒排便于數(shù)據(jù)壓縮,可大幅提高數(shù)據(jù)壓縮率子表(Tablet):一個(gè)大表可能太大,不利于存儲(chǔ)管理,將在水平方向上被分為多個(gè)子表分布式結(jié)構(gòu)化數(shù)據(jù)表BigTableBigTable數(shù)據(jù)模型BigTable數(shù)據(jù)存儲(chǔ)格式列(Column):BigTable將列關(guān)鍵字組織成為“列族”(columnfamily),每個(gè)族中的數(shù)據(jù)屬于同一類別,如anchor時(shí)一個(gè)列族,其下可有不同的表示一個(gè)個(gè)超鏈的列關(guān)鍵字。一個(gè)列族下的數(shù)據(jù)會(huì)被壓縮在一起存放。因此,一個(gè)列關(guān)鍵字可表示為:
族名:列名(family:qualifier)content、anchor都是族名;而和my.look.ca則是anchor族中的列名。分布式結(jié)構(gòu)化數(shù)據(jù)表BigTableBigTable數(shù)據(jù)模型BigTable數(shù)據(jù)存儲(chǔ)格式時(shí)間戳(timestamp):很多時(shí)候同一個(gè)URL的網(wǎng)頁會(huì)不斷更新,而Google需要保存不同時(shí)間的網(wǎng)頁數(shù)據(jù),因此需要使用時(shí)間戳來加以區(qū)分。為了簡化不同版本的數(shù)據(jù)管理,BigTable提供給了兩種設(shè)置:保留最近的n個(gè)版本數(shù)據(jù)保留限定時(shí)間內(nèi)的所有不同版本數(shù)據(jù)分布式結(jié)構(gòu)化數(shù)據(jù)表BigTableBigTable基本構(gòu)架分布式結(jié)構(gòu)化數(shù)據(jù)表BigTableBigTable主服務(wù)器BigTable客戶端BigTable客戶端程序庫BigTable子表服務(wù)器BigTable子表服務(wù)器BigTable子表服務(wù)器BigTable子表服務(wù)器……執(zhí)行元數(shù)據(jù)操作和負(fù)載平衡數(shù)據(jù)存儲(chǔ)和訪問操作數(shù)據(jù)存儲(chǔ)和訪問操作數(shù)據(jù)存儲(chǔ)和訪問操作數(shù)據(jù)存儲(chǔ)和訪問操作GFSChubby服務(wù)器(分布式鎖服務(wù))GoogleWorkQueue負(fù)責(zé)故障監(jiān)控和處理子表數(shù)據(jù)的存儲(chǔ)及日志元數(shù)據(jù)存儲(chǔ)及主服務(wù)器選擇BigTable基本構(gòu)架主服務(wù)器新子表分配:當(dāng)一個(gè)新子表產(chǎn)
生時(shí),主服務(wù)器通過加載命令
將其分配給一個(gè)空間足夠大的
子表服務(wù);創(chuàng)建新表、表合并
及較大子表的分裂都會(huì)產(chǎn)生新
的子表。子表監(jiān)控:通過Chubby完成。所有子表服務(wù)器基本信息被保存在Chubby中的服務(wù)器目錄中主服務(wù)器檢測這個(gè)目錄可獲取最新子表服務(wù)器的狀態(tài)信息。當(dāng)子表服務(wù)器出現(xiàn)故障,主服務(wù)器將終止該子表服務(wù)器,并將其上的全部子表數(shù)據(jù)移動(dòng)到其它子表服務(wù)器。負(fù)債均衡:當(dāng)主服務(wù)器發(fā)現(xiàn)某個(gè)子表服務(wù)器負(fù)載過重時(shí),將對自動(dòng)對其進(jìn)行負(fù)載均衡操作。分布式結(jié)構(gòu)化數(shù)據(jù)表BigTable主服務(wù)器新子表分配子表服務(wù)器間的負(fù)載均衡子表服務(wù)器狀態(tài)監(jiān)控BigTable基本構(gòu)架子表服務(wù)器BigTable中的數(shù)據(jù)都以子表形式保存在子表服務(wù)器上,客戶端程序也直接和子表服務(wù)器通信。分配:當(dāng)一個(gè)新子表產(chǎn)子表服務(wù)器的主要問題
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東省德州市一中2026屆高三上化學(xué)期中聯(lián)考模擬試題含解析
- 歷史文化街區(qū)改造2025年社會(huì)穩(wěn)定風(fēng)險(xiǎn)評估與保護(hù)策略報(bào)告
- 2025年Z世代消費(fèi)偏好研究:新消費(fèi)品牌品牌形象塑造報(bào)告
- 數(shù)字化轉(zhuǎn)型如何推動(dòng)公路貨運(yùn)效率提升的深度研究報(bào)告
- 機(jī)械裝備制造業(yè)智能化升級(jí)中的工業(yè)大數(shù)據(jù)分析與應(yīng)用報(bào)告
- 2025年教育質(zhì)量評估與認(rèn)證體系教育質(zhì)量評價(jià)體系教育信息化應(yīng)用研究報(bào)告
- 2025年民辦教育機(jī)構(gòu)合規(guī)運(yùn)營風(fēng)險(xiǎn)防控與品牌形象維護(hù)策略報(bào)告
- 江蘇省高考數(shù)學(xué)二輪復(fù)習(xí) 專題四 函數(shù)與導(dǎo)數(shù) 第2講 導(dǎo)數(shù)及其應(yīng)用課件-人教版高三全冊數(shù)學(xué)課件
- 高考數(shù)學(xué)一輪復(fù)習(xí) 10.3 參數(shù)方程課件 理-人教版高三全冊數(shù)學(xué)課件
- 2026年高考語文備考匯編:文學(xué)類文本閱讀(小說)(一)含答案解析
- 醫(yī)藥行業(yè)數(shù)字化營銷方案研究
- 2025年大眾點(diǎn)評CNY營銷解決方案
- 臨床常用血生化檢查-血清電解質(zhì)檢查(健康評估)
- 倉庫人員防暑措施方案
- 2024至2030年中國晶圓代工行業(yè)市場供需形勢分析及投資前景評估報(bào)告
- 小學(xué)教師嘉獎(jiǎng)主要事跡材料簡短
- 空地一體5G增強(qiáng)低空網(wǎng)絡(luò)白皮書2024
- 2024年山東省高考生物試卷(真題+答案)
- 沼液運(yùn)輸合同
- 2024年楚雄州金江能源集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 2023年河南省對口升學(xué)養(yǎng)殖類專業(yè)課試卷
評論
0/150
提交評論