Hbase儲存結構筆記
- Hbase架構在HDFS環境上 , 類似google的 bigtable與GFS
- Hbase table和region(預設64KB)的關係 , 類似HDFS file與block(預設64MB)的關係
- Hbase是按照Column Family儲存
- table & region
- 隨著資料的增加 , hbase會依照 rowkey 範圍切成不同 region , 每個region 用 [startkey,endkey﹞] 表示 , 最後Hmaster 分配到各 regonserver管理 。
- -ROOT- && .META. Table
- zookeeper意思就是這個動物園裡的管理者, 譬如pig、hadoop、hive...等 , 負責各節點之間的協調角色 , zookeeper記錄了 -Root的位置 , HRegionServer也會註冊至zookeeper上, 使得HMaster可以得知HRegionServer是否還活著 , 並且ZooKeeper Fail Controller (ZKFC) 可以處理單點失敗問題
- Root只有一個region組成 ,記錄了.meta表的region訊息
- .meta可以有多個region組成,記錄了表的region訊息
HMaster
- 可以啟動多個HMaster , 透過Zookeeper Election機制管理 , 保證有一個HMaster運行
- 名稱解釋
- 每個HRegionServer管理數個HRegion
- 每個HRegion對應了一個Region
- 每個HRegion由多個HStore組成
- 每個HStore包含多個Storefile , 一HStore對應一個Column Family
- 因資料放在同一個Column Family裡 , 因此在查詢速度上 , HBase比HDFS快
- 每個storefile(hfile)包含多個block(最小單位) ,一個storefile對應一個Column Qualifier
- HStore是HBase中儲存核心 , 由MemStore與StoreFiles組成
- MemStore是memory buffer , 將使用者操作放置buffer裡,當flush時存成一個storefile(HFile) , 當storefile達到一定數量會啟動compact機制,合併成storefiles同時更新版本與刪除,不斷合併超過一數值後 , 將其split , split後的region們會被HMaster分配到HRegionServer上
- compact分為兩種情況
- Minor Compaction (部分文件合併)
- Major Compaction (完整文件合併)
- 刪除過期&已刪除的data
- 合併結束只會有一個storefile
- 在處理過程中如果其中一台RegionServer掛掉了, HMaster会通过Zookeeper感知到,HMaster首先會處理遺留的 HLog文件,將失效的region重新分配
沒有留言:
張貼留言