大數據技術之HBase

1.數據模型

1.1數據模型概述

  • HBase是一個稀疏、多維度、排序的映射表,這張表的索引是行鍵、列族、列限 定符和時間戳
  • 每個值是一個未經解釋的字符串,沒有數據類型
  • 用戶在表中存儲數據,每一行都有一個可排序的行鍵和任意多的列
  • 表在水平方向由一個或者多個列族組成,一個列族中可以包含任意多個列,同一 個列族裏面的數據存儲在一起
  • 列族支持動態擴展,可以很輕鬆地添加一個列族或列,無需預先定義列的數量以 及類型,所有列均以字符串形式存儲,用戶需要自行進行數據類型轉換
  • HBase中執行更新操作時,並不會刪除數據舊的版本,而是生成一個新的版本, 舊有的版本仍然保留(這是和HDFS只允許追加不允許修改的特性相關的)

1.2數據模型相關概念

在這裏插入圖片描述

2.實現原理

2.1HBase的功能組件

  1. 庫函數:一般用於鏈接每個客戶端
  2. Master服務器:充當管家的作用
    在這裏插入圖片描述
  3. Region服務器:負責存儲不同的Region
    Hbase設計了三層結構實現Region的尋址和定位
  • 首先要構建一個元數據表,假設這個元數據表只有兩列,第一列是Region的id,第二列是Region服務器的id
  • Hbase最開始構建時有一個映射表,這個映射表被稱爲.META.表
  • .META.表時用來存儲元數據的在這裏插入圖片描述

在這裏插入圖片描述

3.運行機制

3.1HBase的系統架構圖

在這裏插入圖片描述 在這裏插入圖片描述

  1. 客戶端
    ·客戶端包含訪問HBase的接口,同時在緩存中維護着已經訪問過的Region位置 信息,用來加快後續數據訪問過程
    · 包含訪問HBase的接口並維護cache來加快對HBase的訪問
  2. Zookeeper服務器 – Zookeeper可以幫助選舉出一個Master作爲集羣的總管,並保證在任何時刻總 有唯一一個Master在運行,這就避免了Master的“單點失效”問題
    • 保證任何時候,集羣中只有一個master
    • 存貯所有Region的尋址入口。
    • 實時監控Region server的上線和下線信息。並實時通知Master
    • 存儲HBase的schema和table元數據在這裏插入圖片描述
  3. Master
    主服務器Master主要負責表和Region的管理工作:
  • 管理用戶對錶的增加、刪除、修改、查詢等操作
  • 實現不同Region服務器之間的負載均衡
  • 在Region分裂或合併後,負責重新調整Region的分佈
  • 對發生故障失效的Region服務器上的Region進行遷移
    版本二:
    • 爲Region server分配region
    • 負責Region server的負載均衡
    • 發現失效的Region server並重新分配其上的region
    • 管理用戶對table的增刪改操作
  1. Region服務器 – Region服務器是HBase中最核心的模塊,負責維護分配給自己的Region,並 響應用戶的讀寫請求
    • Region server維護region,處理對這些region的IO請求
    • Region server負責切分在運行過程中變得過大的region

3.2Region服務器工作原理

在這裏插入圖片描述

  1. 用戶讀寫數據過程
    在這裏插入圖片描述在這裏插入圖片描述•用戶寫入數據時,被分配到相應Region服務器去執行
    •用戶數據首先被寫入到MemStore和Hlog中
    •只有當操作寫入Hlog之後,commit()調用纔會將其返回給客戶端
    •當用戶讀取數據時,Region服務器會首先訪問MemStore緩存,如果 找不到,再去磁盤上面的StoreFile中尋找
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章