Hbase基礎原理
阿新 • • 發佈:2019-01-05
發展歷史
- HBASE是建立在HDFS上的高效能資料庫系統
- 通過ROWKEY和主鍵的range來檢索資料
- HIVE支援多表的複雜操作
- 主要是橫向擴充套件,通過增加廉價的伺服器,來提高計算能力
- 表名,行健,列組,列,值
HBASE中的行只支援三種方式訪問
1.通過單個ROWKEY訪問
2.通過ROWKEY的範圍訪問
3.全表掃描
注意ROWKEY在HBASE的內部儲存為“位元組陣列”,一般長度為100左右的BYTES
- HBase中通過row和columns確定的為一個存貯單元稱為cell。每個cell都儲存著同一份資料的多個版本
- 不同版本的資料按照倒序排序,最新的排在最前面
- 時間戳可以自動賦值,也可以由客戶端顯示賦值,時間精確到當前時間系統毫秒
- 都是按照位元組碼形式儲存(CELL中)
Table 在行的方向上分割為多個Hregion
region按大小分割的,每個表一開始只有一個region,隨著資料不斷插入表,region不斷增大,當增大到一個閥值的時候,Hregion就會等分會兩個新的Hregion。當table中的行不斷增多,就會有越來越多的Hregion
Hregion是Hbase中分散式儲存和負載均衡的最小單元。最小單元就表示不同的Hregion可以分佈在不同的HRegion server上。但一個Hregion是不會拆分到多個server上的
HRegion雖然是分散式儲存的最小單元,但並不是儲存的最小單元。
事實上,HRegion由一個或者多個Store組成,每個store儲存一個columns family。
每個Strore又由一個memStore和0至多個StoreFile組成。如圖:
StoreFile以HFile格式儲存在GFS上
系統架構
ZOOKEEPER
1.保證任何時候。叢集中只有一個MASTER 2.儲存所有REGION的定址入口 3.監控REGION SERVER,將其上線,下線的訊息通知給MASTER 4.儲存HBASE的圖表,包括有那些TABLE,每個由那些列組(CF)
MASTER
1.為region server分配region
2.負責region server的負載均衡
3.發現失效的regionserver並重新
分配其上的region
4.GFS上的垃圾檔案回收
5.處理schema(圖表)更新請求
REGION SERVER
1 Region server維護Master分配給它的region,處理對這些region的IO請求
2 Region server負責切分在執行過程中變得過大的region
可以看到,client訪問hbase上資料的過程並不需要master參與(定址訪問zookeeper和region server,資料讀寫訪問regione server),master僅僅維護者table和region的元資料資訊,負載很低