1. 程式人生 > >HBase架構設計

HBase架構設計

大小 mas compact memstore col 所有 行合並 idt flash

一.Client

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

二.Zookeeper

  1.保證任何時候,集群中只有一個master。

  2.存儲所有Region的尋址入口。

  3.實時監控Region server的上線和下線信息,並實時通知Master。

  4.存儲HBase的schema和table元數據。

三.Master

  1.為Region server分配region。

  2.負責Region server的負載均衡。

  3.發現失效的Region server並重新分配其上的region。

  4.管理用戶對table的增刪改操作。

四.Region Server

  1.Region server維護region,處理對這些region的I/O請求。

  2.Region server負責切分在運行過程中變得過大的region。

五.Region

  1.HBase自動把表水平劃分成多個區域【region】,每個region會保存一個表裏面某段連續的數據。

  2.每個表一開始只有一個region,隨著數據不斷插入表,region不斷增大,當增大到一個閾值大的時候,region就會等分為兩個新的region【裂變】。

  3.當table的行不斷增多,就會有越來越多的region。這樣一張完整的表被保存在多個Region server上。

六.Memstore與storefile

  1.一個region由多個store組成,一個store對應一個cf【列族】。

  2.store包括位於內存中的memstore和位於磁盤的storefile,寫操作先寫入memstore,當memstore中的數據達到某個閾值,hregionserver會啟動flashcache進程寫入storefile,每次寫入形成一個單獨的storefile。

  3.當storefile文件的數量增長到一定閾值後,系統會進行合並【minor compaction:相鄰兩個小文件之間合並,不影響HBase提供服務。major compaction: 在合並過程中會進行版本合並和刪除操作,影響HBase提供服務】,形成更大的storefile。

  4.當一個region所有storefile的大小和數量超過一定閾值後,會把當前的region分割為兩個,並由hmaster隨機分配到相應的regionserver服務器,實現負載均衡。

  5.客戶端檢索數據,先在memstore中找,找不到再去storefile中找。

備註:

  1.HRegion是HBase中分布式存儲和負載均衡的最小單位。HRegion可以分布在不同的HRegion server上。

  2.HRegion由一個或多個store組成,每個store保存一個列族。

  3.每個store又有一個memStore和0到多個storeFile組成。

  技術分享圖片

HBase架構設計