1.Hbase是一個用java語言實現的,構建於Hadoop分佈式系統(HDFS)上的分佈式數據庫。java
2.HBase的特色:數據庫
a:海量存儲架構
b:列式存儲(能夠針對列進行權限控制和讀取)分佈式
c:多版本:根據時間戳存儲不一樣版本的數據oop
d:稀疏性:blog
1. 爲空的列不佔用實際存儲空間權限控制
2.傳統數據庫爲空的列依然要佔用存儲空間io
e:高擴展,高可用性:底層基於HDFS,高可用和擴展性獲得了保障。系統架構
3.HBase中表結構模型table
a:表(table):用於存儲管理數據,具備稀疏性,面向列的特色。
b:行鍵(RowKey):相似於MYSQL中的主鍵,HBase根據行鍵來快速檢索數據,一個行鍵對應一條記錄。與MYSQL主鍵不一樣的是,HBase的行鍵是自然固有的,每一行數據都存在行鍵。
c:列簇(ColumnFamily):是列的集合。列族在表定義是須要指定,而列在插入數據是動態指定。列中的數據都是以二進制的形式存在,沒有數據類型。
d:時間戳(TimeStamp):是列的一個屬性,是一個64位整數。由行鍵和列肯定的單元格,能夠存儲多個數據,每一個數據含有時間戳屬性,數據具備版本特性。能夠根據版本或時間戳來指定查詢歷史版本數據,若是都不指定,則默認返回最新版本的數據。
4.HBase系統架構
能夠看出HBase須要依賴Zookeepeer和HDFS。
a:Zookeeper
1:保證任什麼時候候,集羣中只有一個running master,避免單點問題;
2:存儲全部Region的尋址入口,包括表地址,HMaster地址;
3:實時監控Region Server的狀態,將Region Server的上線和下線信息,實時通知通知給Master;
4:存儲Hbase的schema,包括有哪些table,每一個table有哪些column family
b:Master:能夠啓動多個HMaster,經過Zookeeper的Master Election機制保證總有一個Master運行。
c:RegionServer:HBase中最核心的模塊,主要負責響應用戶的I/O請求,向HDFS文件系統中讀寫數據。
d:HDFS:負責存儲數據。