1. 程式人生 > >Hbase基礎原理

Hbase基礎原理

發展歷史

  • HBASE是建立在HDFS上的高效能資料庫系統
  • 通過ROWKEY和主鍵的range來檢索資料
  • HIVE支援多表的複雜操作
  • 主要是橫向擴充套件,通過增加廉價的伺服器,來提高計算能力
  • 表名,行健,列組,列,值

HBASE中的行只支援三種方式訪問

1.通過單個ROWKEY訪問
2.通過ROWKEY的範圍訪問
3.全表掃描

注意ROWKEY在HBASE的內部儲存為“位元組陣列”,一般長度為100左右的BYTES

  • HBase中通過row和columns確定的為一個存貯單元稱為cell。每個cell都儲存著同一份資料的多個版本
  • 不同版本的資料按照倒序排序,最新的排在最前面
  • 時間戳可以自動賦值,也可以由客戶端顯示賦值,時間精確到當前時間系統毫秒
  • 都是按照位元組碼形式儲存(CELL中)
  • Table 在行的方向上分割為多個Hregion
    此處輸入圖片的描述

  • region按大小分割的,每個表一開始只有一個region,隨著資料不斷插入表,region不斷增大,當增大到一個閥值的時候,Hregion就會等分會兩個新的Hregion。當table中的行不斷增多,就會有越來越多的Hregion
    此處輸入圖片的描述

  • Hregion是Hbase中分散式儲存和負載均衡的最小單元。最小單元就表示不同的Hregion可以分佈在不同的HRegion server上。但一個Hregion是不會拆分到多個server上的
    此處輸入圖片的描述

  • HRegion雖然是分散式儲存的最小單元,但並不是儲存的最小單元。
      事實上,HRegion由一個或者多個Store組成,每個store儲存一個columns family。
      每個Strore又由一個memStore和0至多個StoreFile組成。如圖:
      StoreFile以HFile格式儲存在GFS上
    此處輸入圖片的描述

    系統架構

    此處輸入圖片的描述

此處輸入圖片的描述

ZOOKEEPER

1.保證任何時候。叢集中只有一個MASTER
2.儲存所有REGION的定址入口
3.監控REGION SERVER,將其上線,下線的訊息通知給MASTER
4.儲存HBASE的圖表,包括有那些TABLE,每個由那些列組(CF)

MASTER

 1.為region server分配region
 2.負責region server的負載均衡
 3.發現失效的regionserver並重新
 分配其上的region
 4.GFS上的垃圾檔案回收
 5.處理schema(圖表)更新請求

REGION SERVER

1 Region server維護Master分配給它的region,處理對這些region的IO請求
2 Region server負責切分在執行過程中變得過大的region
     可以看到,client訪問hbase上資料的過程並不需要master參與(定址訪問zookeeper和region server,資料讀寫訪問regione server),master僅僅維護者table和region的元資料資訊,負載很低