這篇文章主要為大家展示了“HBase的原理和架構是什么”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“HBase的原理和架構是什么”這篇文章吧。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供依安網(wǎng)站建設、依安做網(wǎng)站、依安網(wǎng)站設計、依安網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、依安企業(yè)網(wǎng)站模板建站服務,10余年依安做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
一、邏輯存儲模型
HBase以表的形式存儲數(shù)據(jù),表由行和列組成。列劃分為若干個列族,
RowKey:Hbase使用Rowkey來唯一的區(qū)分某一行的數(shù)據(jù)。如圖中"rk001"
列族:Hbase通過列族劃分數(shù)據(jù)的存儲,列族下面可以包含任意多的列,實現(xiàn)靈活的數(shù)據(jù)存取。Hbase的列族不是越多越好,官方推薦的是列族最好小于或者等于3。我們使用的場景一般是1個列族。如圖中的“CF1”列族,下面包含兩個列:"Name"和"Alias"。
時間戳:TimeStamp對Hbase來說至關重要,因為它是實現(xiàn)Hbase多版本的關鍵。在Hbase中使用不同的timestame來標識相同rowkey行對應的不通版本的數(shù)據(jù)。
Cell:HBase 中通過 rowkey 和 columns 確定的為一個存儲單元稱為 cell。每個 cell 都保存著同一份 數(shù)據(jù)的多個版本。版本通過時間戳來索引。
二、物理存儲模型
在HBase中,數(shù)據(jù)以表的形式存儲,表由很多行組成,每一行由Row key(行鍵)以及一個或多個的列值組成。我們可以這么想,當表有很多很多的Row時,我們把這個表按某些規(guī)則(比如每500條)拆分成很多部分,那么拆分后的每一部分就是所謂的HRegion,這個HRegion作為一個整體被HMaster分配到某一個RegionServer中。這里可以這樣理解,把HMaster想象成一個老大,他把HRegion給分配到某一個服務器上,這樣一來,一個表就被分成多個HRegion并可能分配到了不同的RegionServer上。我們剛說HRegion是一個整體,意思是他不能再繼續(xù)往下分割了,他必須在一個RegionServer上。
三、總體架構
HBase的總體結構圖如下:
包括了HMaster、HRegionSever、HRegion、HLog、Store、MemStore、StoreFile、HFile等。
HBase底層依賴HDFS,通過DFS Cilent進行HDFS操作。
HMaster負責把HRegion分配給HRegionServer,每一個HRegionServer可以包含多個HRegion,多個HRegion共享HLog,HLog用來做災難恢復。
每一個HRegion由一個或多個Store組成,一個Store對應表的一個列族,每個Store中包含與其對應的MemStore以及一個或多個StoreFile(是實際數(shù)據(jù)存儲文件HFile的輕量級封裝),MemStore是在內(nèi)存中的,保存了修改的數(shù)據(jù),MemStore中的數(shù)據(jù)寫到文件中就是StoreFile。
3.1 HMaster
HMaster的主要功能有:
①把HRegion分配到某一個RegionServer。
②有RegionServer宕機了,HMaster可以把這臺機器上的Region遷移到active的RegionServer上。
③對HRegionServer進行負載均衡。
④通過HDFS的dfs client接口回收垃圾文件(無效日志等)
注:HMaster沒有單點問題,HBase中可以啟動多個HMaster,通過Zookeeper的Master Election機制保證總有一個Master運行。
3.2 HRegionServer
①維護HMaster分配給它的HRegion,處理對這些HRegion的IO請求,也就是說客戶端直接和HRegionServer打交道。(從圖中也能看出來)
②負責切分正在運行過程中變得過大的HRegion
3.3 HRegion
下面我們看看HRegion的結構:
每個HRegion由多個Store構成,每個Store保存一個列族(Columns Family),表有幾個列族,則有幾個Store,每個Store由一個MemStore和多個StoreFile組成,MemStore是Store在內(nèi)存中的內(nèi)容,寫到文件后就是StoreFile。StoreFile底層是以HFile的格式保存。
3.4 HLog
HLog(WAL log):WAL意為write ahead log(預寫日志),用來做災難恢復使用,HLog記錄數(shù)據(jù)的變更,包括序列號和實際數(shù)據(jù),所以一旦region server 宕機,就可以從log中回滾還沒有持久化的數(shù)據(jù)。
3.5 HFile
HBase的數(shù)據(jù)最終是以HFile的形式存儲在HDFS中的,HBase中HFile有著自己的格式。
以上是“HBase的原理和架構是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文標題:HBase的原理和架構是什么
地址分享:http://aaarwkj.com/article30/iihspo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、網(wǎng)站內(nèi)鏈、App設計、企業(yè)建站、小程序開發(fā)、電子商務
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)