7.2-列存儲(chǔ)數(shù)據(jù)庫-2_第1頁
7.2-列存儲(chǔ)數(shù)據(jù)庫-2_第2頁
7.2-列存儲(chǔ)數(shù)據(jù)庫-2_第3頁
7.2-列存儲(chǔ)數(shù)據(jù)庫-2_第4頁
7.2-列存儲(chǔ)數(shù)據(jù)庫-2_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、7.2列存儲(chǔ)數(shù)據(jù)庫HBASE的存儲(chǔ)架構(gòu)HBASE的系統(tǒng)架構(gòu)及基本組件【本節(jié)學(xué)習(xí)目標(biāo)】一、HBASE存儲(chǔ)結(jié)構(gòu)-含義回顧HBASE的邏輯模型: 表表的形式表達(dá)和存儲(chǔ)數(shù)據(jù),表-行和列,列-若干個(gè)列族。表基于行鍵、列族、列限定符和時(shí)間版本。每個(gè)c列族DFS上單獨(dú)文件中,空值不會(huì)被保存。Key 和 Version number在每個(gè) column family中均有一份;HBase 為每個(gè)值維護(hù)了多級(jí)索引,即:物理存儲(chǔ)-上面的邏輯模型對(duì)于物理文件的過程一、HBASE存儲(chǔ)結(jié)構(gòu)物理存儲(chǔ)1、表中所有行都按照row key的字典序排列;2、Table在行的方向上分割為多個(gè)Region;3、Region按大小分割

2、的,每個(gè)表開始只有一個(gè)region,隨著數(shù)據(jù)增多,region不斷增大,當(dāng)增大到一個(gè)閥值的時(shí)候,region就會(huì)等分會(huì)兩個(gè)新的region,之后會(huì)有越來越多的region;4、Region是Hbase中分布式存儲(chǔ)和負(fù)載均衡的最小單元,不同Region分布到不同RegionServer上一、HBASE存儲(chǔ)結(jié)構(gòu)存儲(chǔ)模型圖模型層次圖一、HBASE存儲(chǔ)結(jié)構(gòu)-存儲(chǔ)部件1)表Table: 面向列(族)的存儲(chǔ)和權(quán)限控制,列(族)獨(dú)立檢索的稀疏存儲(chǔ)。按行健的字典排序;Table在行的方向上分割多個(gè)Region。)區(qū)域Region(表的Regions):每個(gè)Region存儲(chǔ)著Table的若干行,Region是分

3、布式存儲(chǔ)的最小單元。Store(Region中以列族為單位的單元): 區(qū)域由一個(gè)或者多個(gè)Store組成,每個(gè)store保存一個(gè)列族。Strore由memStore和0至多個(gè)StoreFileStoreFile:以HFile的格式存儲(chǔ)在分布式文件系統(tǒng)(HDFS)上一、HBASE存儲(chǔ)結(jié)構(gòu)storefile的結(jié)構(gòu)StoreFile:以HFile存儲(chǔ)在HDFS)上,組成成1)DataBlock保存表中的數(shù)據(jù),可壓縮;2)MetaBlock用戶自定義的鍵值對(duì),可壓縮;)File Info存儲(chǔ)HFile的元信息,不能壓縮,用戶也可以在這一部分添加自己的元信息;)DataBlockIndex存儲(chǔ)數(shù)據(jù)塊索引,

4、索引的鍵值是第一條記錄的鍵值(key);5) MetaBlockIndex元數(shù)據(jù)塊的索引;6) Trailer保存每一段的偏移量,讀取一個(gè)HFile時(shí),會(huì)首先讀取Trailer(段的開始位置)。Block (讀寫最小單元),存儲(chǔ)管理的最小單位。HBase數(shù)據(jù)存儲(chǔ)的層次的關(guān)系)Table和Region的關(guān)系 1多 2)Region和Store的關(guān)系:每一行都包含一或多個(gè)列族,所以每個(gè)Region包括一到多個(gè)Store。 1多3)Store和HFile的關(guān)系:每個(gè)store由一個(gè)memStore和0至多個(gè)HFile組成,在client進(jìn)行數(shù)據(jù)寫過程中,數(shù)據(jù)會(huì)先寫入緩沖(memStore),當(dāng)緩沖(

5、memStore)到達(dá)一定大小的時(shí)候,就會(huì)flush到硬盤生成一個(gè)Hfile。 1多二、HBASE的系統(tǒng)構(gòu)架-集群Hbase是一個(gè)分布式的數(shù)據(jù)庫,使用Zookeeper來管理集群。在架構(gòu)層面上分為Master和多個(gè)RegionServer。 在分布式的生產(chǎn)環(huán)境中,HBase 需要運(yùn)行在 HDFS 之上,由 HDFS提供基礎(chǔ)的存儲(chǔ)設(shè)施,上層提供訪問的數(shù)據(jù)的 API,對(duì)HBase 的數(shù)據(jù)進(jìn)行管理,集群主要主服務(wù)器(Master)、 區(qū)域服務(wù)器(Region Server)、協(xié)調(diào)者服務(wù)器(Zookeeper)等組成,二、HBASE的系統(tǒng)構(gòu)架-集群圖示集群構(gòu)架圖二、HBASE的系統(tǒng)構(gòu)架主服務(wù)器管理區(qū)域

6、服務(wù)器;指派區(qū)域服務(wù)器對(duì)特定區(qū)域服務(wù); 恢復(fù)失效的區(qū)域服務(wù)器,負(fù)載均衡和修復(fù)時(shí)區(qū)域服務(wù)器監(jiān)聽ZooKeeper中的狀態(tài), 其管理職能包括創(chuàng)建、刪除、修改表的定義等;負(fù)責(zé)分配區(qū)域給區(qū)域服務(wù)器。多個(gè)Master節(jié)點(diǎn)共存,只有一個(gè)Master是提供服務(wù)的,其他的Master節(jié)點(diǎn)處于待命的狀態(tài)。當(dāng)正在工作的Master節(jié)點(diǎn)失效時(shí),其他的Master則會(huì)接管集群。成二、HBASE的系統(tǒng)構(gòu)架-區(qū)域服務(wù)器為區(qū)域的訪問提供服務(wù),直接為用戶提供服務(wù);負(fù)責(zé)維護(hù)區(qū)域的合并與分割; 負(fù)責(zé)數(shù)據(jù)存持久化。管理表格,實(shí)現(xiàn)讀寫操作??蛻舳酥苯舆B接區(qū)域服務(wù)器,并通信獲取HBase中的數(shù)據(jù)。二、HBASE的系統(tǒng)構(gòu)架協(xié)調(diào)者協(xié)調(diào)者(

7、Zookeeper),保證任何時(shí)候集群中只有一個(gè)master, 存儲(chǔ)所有Region的尋址入口, 實(shí)時(shí)監(jiān)控區(qū)域服務(wù)器的狀態(tài),將Region上線和下線的信息實(shí)時(shí)通知給Master, 存儲(chǔ)Hbse的schema,有哪些table,table有哪些列族。通過選舉,集群中只有一個(gè)master處于運(yùn)行狀態(tài)。Zookeeper負(fù)責(zé)Region和區(qū)域服務(wù)器的注冊(cè)。解決分布式環(huán)境下數(shù)據(jù)管理問題:1.統(tǒng)一命名, 2.狀態(tài)同步, 3.集群管理, 4.配置同步二、HBASE的系統(tǒng)構(gòu)架-clientClient: 請(qǐng)求發(fā)起者, 通過API,包含訪問Hbase的接口,維護(hù)著一些cache來加快對(duì)Hbase的訪問,比如r

8、egion的位置信息。訪問HBase的接口,并維護(hù)cache來加快對(duì)HBase的訪問,比如region的位置信息. 使用HBase RPC機(jī)制與HMaster和區(qū)域服務(wù)器進(jìn)行通信. Client與HMaster進(jìn)行通信進(jìn)行管理類操作. Client與區(qū)域服務(wù)器進(jìn)行數(shù)據(jù)讀寫類操作二、HBASE的系統(tǒng)基本組件HBase采用Master/Slave架構(gòu)搭建集群,由HMaster節(jié)點(diǎn)、區(qū)域服務(wù)器節(jié)點(diǎn)、ZooKeeper集群組成,在底層,它將數(shù)據(jù)存儲(chǔ)于分布式文件系統(tǒng)中。區(qū)域服務(wù)器包含多個(gè)HRegion,由WAL(HLog)、BlockCache、MemStore、HFile組成,二、HBASE的系統(tǒng)構(gòu)架

9、-組件圖組件圖二、HBASE的系統(tǒng)構(gòu)架-組件解釋HLog(WAL log): WAL 意為先寫日志后記錄數(shù)據(jù)(Write ahead log),用做災(zāi)難恢復(fù),Hlog記錄數(shù)據(jù)的所有變更WAL是HDFS上的一個(gè)文件,寫操作都先將數(shù)據(jù)寫入日志后,才會(huì)真正更新MemStore,最后寫入HFile中。區(qū)域服務(wù)器失效后,可以從日志文件中讀取數(shù)據(jù),重做所有的操作,來保證數(shù)據(jù)的一致性。日志文件會(huì)定期刪除舊的文件(已寫到HFile中的Log可以刪除)二、HBASE數(shù)據(jù)庫系統(tǒng)構(gòu)架-HLOG每個(gè)區(qū)域服務(wù)器維護(hù)一個(gè)Hlog,而不是每個(gè)Region一個(gè)。HLog是一個(gè)普通的Hadoop序列文件,它的Key是HLogK

10、ey對(duì)象,HLogKey中記錄了寫入數(shù)據(jù)的歸屬信息,包括table和region名字,sequence number和timestamp,HLog Sequece File的Value是Hbase的鍵值對(duì)象,即對(duì)應(yīng)HFile中的鍵值。二、HBASE數(shù)據(jù)庫系統(tǒng)構(gòu)架Hlog相關(guān)LogFlusher, 數(shù)據(jù)以鍵值形式到達(dá)區(qū)域服務(wù)器,寫入WAL,之后寫入一個(gè)SequenceFile。日志文件先寫內(nèi)存, LogFlusher定期把緩沖器中數(shù)據(jù)寫到Hfile(磁盤上)。LogRoller, Log配置大小,默認(rèn)每60分鐘,會(huì)打開一個(gè)新的log文件。LogRoller調(diào)用HLog.rollWriter(),定時(shí)滾動(dòng)日志,利用HLog.cleanOldLogs()可以清除舊的日志。取得存儲(chǔ)文件中的最大的sequence number,存在一個(gè)log所有的條目的“sequence number”均低于這個(gè)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論