Hbase基礎知識

HBase簡介

分佈式,多版本,面向列的數據庫
特色:強一致性 高擴展 高可用數據庫

HBase數據原型

  • RowKey: 表中每條記錄的主鍵,RowKey會進行字典排序
  • Column Family: 列族,將表進行橫向切割,後面簡稱CF
  • Column: 屬於某一個列族,可動態添加列
  • Version Number: 類型爲Long,默認值是系統時間戳,可由用戶自定義
  • Value: 真實的數據
  1. 一行數據能夠包含多個列族,可是通常不超過三個服務器

  2. 存儲在HBase裏面的表通常有上億行,因此HBase表會對整個數據按照 RowKey 進行字典排序,而後再對這張表進行橫向切割。切割出來的數據是存儲在 HFile 裏面,而不一樣的 Column Family 雖然屬於一行,可是其在底層存儲是放在不一樣的 HFile 裏。因此這張表用了六種顏色表示,也就是說,這張表的數據會被放在六個 HFile 裏面的,這就能夠把數據儘量的分散到整個集羣分佈式

  3. 不一樣的列族會存儲到不一樣的HFile上,可是它們仍是存儲在同一個Region中,在同一個節點上3d

HBase結構

  • Region 表按RowKey水平劃分紅一個集合
  • ReginServer 至關於HDFS的DataNode,存放Region
  • Hlog 預寫日誌文件
  • Store 存放在Region中
  • StoreFile 數據實際存儲的位置
  • MemStore 內存存儲空間
  1. RegionServer主要管理兩種文件,一是Hlog(預寫日誌 write-ahead log WAL),二是region(實際的數據文件)
  2. 用戶向HBase寫入數據,首先在Hlog中產生寫入記錄,若是HBase服務器崩潰,能夠經過Hlog回滾尚未持久化的數據,
  3. 在Hlog中寫入記錄後,數據存在MemStore,當MemStore中數據寫滿時,數據就會被刷寫到磁盤中StoreFile中,
  4. StoreFile存放在Region中,當其中數據寫滿,就會等分產生另外一個Region
  5. 當table中的行不斷增多,就會有愈來愈多的region。這樣一張完整的表被保存在多個Region上
  6. 從上面的圖也能夠清晰看到,一個RegionServer管理多個 Region;而一個 Region 管理一個或多個列族
相關文章
相關標籤/搜索