HBase——架構(二)

HBase架構

在這裏插入圖片描述
Client

  • 包含訪問HBase的接口並維護cache來加快對HBase的訪問

Zookeeper

  • 保證任何時候,集羣中只有一個master
  • 存儲所有Region的尋址入口
  • 實時監控Region server的上線和下線信息。並實時通知Master
  • 存儲HBase的schema和table元數據

Master

  • 爲Region server分配region
  • 負責Region server的負載均衡
  • 發現失效的Region server並重新分配其上的region
  • 管理用戶對table的增刪改操作

RegionServer

  • Region server維護region,處理對這些region的IO請求
  • Region server負責切分在運行過程中變得過大的region

Region

  • HBase自動把表水平劃分成多個區域(region),每個region會保存一個表裏面某段連續的數據
  • 每個表一開始只有一個region,隨着數據不斷插入表,region不斷增大,當增大到一個閥值的時候,region就會等會成兩個新的region(裂變)
  • 當table中的行不斷增多,就會有越來越多的region。這樣一張完整的表被保存在多個Regionserver上。

Memstore與storefile

  • 一個region由多個store組成,一個store對應一個CF(列族)
  • store包括位於內存中的memstore和位於磁盤的storefile,寫操作先寫入memstore,當memstore中的數據達到某個閥值,hregionserver會啓動flashcache進程寫入storefile,每次寫入行成單獨的一個storefile
  • 當storefile文件的數量增長到一定閥值後,系統會進行合併(minor、major、compaction),在合併過程中會進行版本合併和刪除工作(major),形成更大的storefile
  • 當一個region所有storefile的大小和數量超過一定閥值後,會把當前的region分割爲兩個,並由hmaster分配到相應的regionserver服務器,實現負載均衡
  • 客戶端檢索數據,先在memstore找,找不到再找storefile

HRegion是HBase中分佈式存儲和負載均衡最小單元。最小單元就表示不同的HRegion可以分佈在不同的HRegion server上。
HRegion由一個或者多個Sotre組成,每個store保存一個columns family。
每個store又由一個menstore和0至多個storefile組成。如圖:storefile以HFile格式保存在HDFS上。
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章