HBase系列(一)

1 概述


HBase是谷歌BigTable開源實現;

面向列存儲的非關係型數據庫;

存儲海量數據;


2 表的特點


大:一個表可以有數十億行,上百萬列;

面向列:

稀疏:對於null的列,並不佔用內存空間,表可以設計的可稀疏;

數據類型單一:存儲的都是字符串


3 術語


主鍵(Row Key):數據的主鍵,主要用來查詢;

列族(Column Family):列的限定符;在創建表的時候必須申明;

時間戳(Timestamp):數據在添加的時候自動獲取系統當前時間添加進來;

單元(Cell):數據的存儲單元,每一個Cell中保存同一份數據的多個版本,按照時間戳倒序排列;


4 HBase邏輯模型


                     


5 HBase物理模型

                   


6 架構圖   

               

                          


6.1 Client

客戶端


6.2 HMaster


管理用戶對錶的操作,而不是表的內容的操作;

管理HRegionServer的 負載均衡,調整Region分佈;

在Region Split後,負責新的Region的分配;

HRegion Server宕機後,轉移失效的HRegion Server上的Region遷移;

HMaster失效會影響元數據的修改,表數據的讀寫不影響;


6.3 HResion Server


維護HRegion並向HDFS中寫入數據;

當表的大小超過設置值大小,split HRegion;


6.4 zookeeper


HBase元數據保存在zookeeper中;

解決HBase單點故障;

HMaster和HRegion Server 啓動會向zookeeper註冊;

在zookeeper的/hbase目錄下存儲相關數據;

               [zk: localhost:2181(CONNECTED) 0] ls /hbase


6.5 客戶端定位表

從zookeeper中讀取.META.表信息獲取table的位置;

             [zk: localhost:2181(CONNECTED) 3] ls /hbase/meta-region-server


6.6 容錯性


zookeeper是一個高可靠無單點故障;

HMaster宕機,zookeeper會選舉新的HMaster;

HRegion Server定時向zookeeper發送心跳,若出現故障,HMaster會將失效HRegion server上的HRegion轉移






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章