HBase的定義
HBase – Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮、實時讀寫的分佈式數據庫。利用Hadoop HDFS作爲其文件存儲系統,利用Hadoop MapReduce來處理HBase中的海量數據,利用Zookeeper作爲其分佈式協同服務,主要用來存儲非結構化和半結構化的鬆散數據(列存 NoSQL 數據庫)。
HBase 的架構
-
Master
- 爲Region server分配region
- 負責Region server的負載均衡
- 發現失效的Region server並重新分配其上的region
- 管理用戶對table的增刪改操作
-
RegionServer
- Region server維護region,處理對這些region的IO請求
- Region server負責切分在運行過程中變得過大的region
-
Region
- HBase自動把表水平劃分成多個區域(region),每個region會保存一個表裏面某段連續的數據;每個表一開始只有一個region,隨着數據不斷插入表,region不斷增大,當增大到一個閥值的時候,region就會等分會兩個新的region。
- 當table中的行不斷增多,就會有越來越多的region。這樣一張完整的表被保存在多個Regionserver 上。
HBase數據模型
- HRegion是HBase中分佈式存儲和負載均衡的最小單元。最小單元就表示不同的HRegion可以分佈在不同的 HRegion
server上。 - HRegion由一個或者多個Store組成,每個store保存一個columns family。
- 每個Strore又由一個memStore和0至多個StoreFile組成。如圖:StoreFile以HFile格式保存在HDFS上。