HBase構建在 HDFS 之上,Hbase內部管理的文件所有存儲在HDFS 中緩存
行鍵,Table的主鍵,Table中的記錄按照Row Key排序。類型爲Byte array服務器
列簇,Table在水平方向有一個或者多個Column Family組成,一個Column Family中能夠由任意多個Column組成架構
列 格式爲:familyName:columnName併發
版本號。默認值是系統時間戳。每一個 rowkey 惟一。類型爲long負載均衡
具體的值,類型爲Byte array分佈式
每一個 column family 存儲在 HDFS 上的一個單獨文件中高併發
Key 和 Version number 在每一個 column family 中均有一份大數據
HBase 爲每一個值維護了多級索引,即: key, column family, column name, timestampspa
Table 中的全部行都按照 row key 的字典序排列;server
Table 在行的方向上分割爲多個Region;
Region 按大小分割的,每一個表開始只有一個 region ,隨着數據增多, region 不斷增大,當增大到一個閥值的時候,region就會等分會兩個新的region,以後會有愈來愈多的region
Region 是 HBase 中分佈式存儲和負載均衡的最小單元。不一樣Region分佈到不一樣RegionServer上
Region 雖然是分佈式存儲的最小單元,但並非存儲的最小單元。
包含訪問 HBase 的接口,並維護 cache 來加快對 HBase 的訪問
Zookeeper避免了HMaster的單點問題 HBase中能夠啓動多個HMaster,經過Zookeeper的Master Election機制保證總有一個Master運行
第一次讀取:
步驟1:讀取ZooKeeper中ROOT表的位置。
步驟2:讀取ROOT表中.META表的位置。
步驟3:讀取.META表中用戶表的位置。
步驟4:讀取數據。
若是已經讀取過一次,則root表和.META都會緩存到本地
則直接去用戶表的位置讀取數據
-ROOT- 表包含 .META. 表所在的 region 列表,該表只會有一個 Region ;
Zookeeper 中記錄了 -ROOT- 表的 location 。
.META. 表包含全部的用戶空間 region 列表,以及
RegionServer 的服務器地址。