Hbase詳細架構圖解



Hbase架構圖
注意:Hbase是依賴zookeeper和hdfs的,需要啟動zk和hdfs。

主要組件

Zookeeper:
HBase 通過 Zookeeper 來做 Master 的高可用、RegionServer 的監控、元數據的入口以及集群配置的維護等工作。

HDFS:
HDFS 為 HBase 提供最終的底層數據存儲服務,同時為 HBase 提供高可用的支持。

Master:(是所有 Region Server 的管理者,其實現類為 HMaster)

  • 對RegionServer的操作:
  1. 監控RegionServer

  2. 處理RegionServer故障轉移

  3. 處理元數據的變更

  4. 處理region的分配或轉移

  5. 在空閑時間進行數據的負載均衡

  6. 通過Zookeeper發布自己的位置給客戶

  • 對於表的操作(DDL)
    create, delete, alter

RegionServer:(為 Region 的管理者,其實現類為 HRegionServer)

1.負責存儲HBase的實際數據
2.處理分配給它的Region
3.刷新緩存到HDFS
4.維護Hlog
5.執行壓縮
6.負責處理Region分片

對於數據的操作:(DML)
get, put, delete;

Region:
Hbase表的分片,HBase表會根據RowKey值被切分成不同的region存儲在RegionServer中,在一個RegionServer中可以有多個不同的region。

Hlog:
又稱Write-Ahead logs(WAL)預寫入日志。
HBase的修改記錄,當對HBase讀寫數據的時候,數據不是直接寫進磁盤,它會在內存中保留一段時間(時間以及數據量閾值可以設定)。由於數據要經 MemStore 排序后才能刷寫到 StoreFile,但把數據保存在內存中可能有更高的概率引起數據丟失,為了解決這個問題,數據會先寫在一個叫做Write-Ahead logfile的文件中,然后再寫入內存中。所以在系統出現故障的時候,數據可以通過這個日志文件重建。

Store:
StoreFile存儲在Store中,一個Store對應HBase表中的一個列族(列簇, Column Family)。

MemStore:
寫緩存,由於 StoreFile中的數據要求是有序的,所以數據是先存儲在 MemStore 中,排好序后,等到達刷寫時機才會刷寫到 StoreFile,每次刷寫都會形成一個新的 StoreFile。

StoreFile:
這是在磁盤上保存原始數據的實際的物理文件,是實際的存儲文件。StoreFile是以Hfile的形式存儲在HDFS的。每個 Store 會有
一個或多個 StoreFile,數據在每個 StoreFile 中都是有序的(按照Rowkey的字典順序排序)。

Hfile:
可以理解成一種文件格式(其他的文件格式TXT,orc,parquet...),StoreFile是以hfile格式存儲的。

數據模型

邏輯結構圖
邏輯結構
物理存儲結構
物理存儲結構

  1. Name Space
    命名空間,類似於關系型數據庫的 DatabBase 概念,每個命名空間下有多個表。HBase有兩個自帶的命名空間,分別是 hbase 和 default,hbase 中存放的是 HBase 內置的表,default 表是用戶默認使用的命名空間。
  2. Row
    HBase 表中的每行數據都由一個 RowKey 和多個 Column(列)組成,數據是按照 RowKey的字典順序存儲的,並且查詢數據時只能根據 RowKey 進行檢索,所以 RowKey 的設計十分重要。
  3. Column
    HBase 表中的每行數據都由一個 RowKey 和多個 Column(列)組成,數據是按照 RowKey的字典順序存儲的,並且查詢數據時只能根據 RowKey 進行檢索,所以 RowKey 的設計十分重要。
  4. Time Stamp
    用於標識數據的不同版本(version),每條數據寫入時,如果不指定時間戳,系統會自動為其加上該字段,其值為寫入 HBase 的時間。
  5. Cell
    由{rowkey, column Family:column Qualifier, time Stamp} 唯一確定的單元。cell 中的數據是沒有類型的,全部是字節碼形式存貯(byte[]數組)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM