2016/4/26

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重新分配


沒有留言:

張貼留言

test2