1. 程式人生 > >HBase之體系結構(Architecture)

HBase之體系結構(Architecture)

HBase在分散式部署上採用master/slave的方式,主要包含3大功能元件,分別是:RegionServer、MasterServer和ClientLibrary

在分散式儲存上使用的是Hadoop的HDFS子框架

分散式計算功能基於Hadoop的MapReduce實現

1.Region

Region作為HBase的分散式儲存單元包含了一組Row,這些Row的key值在索引排序上是連續的,因此在分散式儲存的時候,RowKey的定義非常重要,要確保具有相同性質的資料是儲存在同一臺機器上,最好的方法就是為他們指定相似的RowKey值

2.RegionServer

在HBase中,RegionServer充當Slave角色,負責與Client進行互動,進行相關的讀寫操作。

3.MasterServer

MasterServer充當master主要有以下職責:

       (1).負責將Region分配給RegionServer

       (2).動態載入或解除安裝RegionServer

       (3).對RegionServer實現負載均衡

       (4).管理Schema定義

系統中可能會存在多個master機器,但是這些機器並不會同時執行,而是處於一個競爭的狀態,當正在執行的master機器出現故障的時候,系統會轉移到其他master來接管。

在HBase部署中,Client是不與Master進行互動的,所有的讀寫操作都是通過RegionServer來完成,master在其中起到了負載均衡的作用,當某一個RegionServer載入量較大時,master可以將相應的Region進行重新的切片部署,將壓力分散到多臺機器上。

4.ClientLibrary

客戶端類庫,與RegionServer進行通訊,並且還會快取RegionServer和它所儲存的Region地址,加快下次訪問效率。

另外,當master機器地址發生變動時,client通過ZooKeeper來查詢定位新的master地址,ZooKeeper儲存了所有機器的地址資訊,客戶端需要有ZooKeeper的連線環境(將habse-site.xml加入到客戶端classpath中)

5.CatelogTable

HBase預定義了兩張表格用於儲存資料的分散式儲存地址,分別是 -ROOT- 和 .META.

-ROOT-儲存了.META.資料的訪問地址

.META.儲存了使用者Region的訪問地址

這樣ClientLibrary可通過-ROOT-遍歷到任何Region的地址