HBase架構:Master

Master是主服務器(Master Server)的實現。主服務器負責監視群集中的所有RegionServer實例,並且是所有元數據更改的接口。在分佈式集群中,Master通常在NameNode上運行。

啟動行為

如果在多主機(multi-Master)環境中運行,所有Master競爭運行集群。如果活動Master在ZooKeeper中失去租約(或Master關閉),則剩下的Master將爭相接管角色。

運行時影響

當Master發生故障時,一個常見的dist-list問題涉及一個HBase集群會發生什麼。由於HBase客戶端直接與RegionServer對話,因此群集仍可以“穩定狀態”運行。此外,每個目錄表(Catalog Tables),hbase:meta作為HBase的表存在,而不是在Master中不存在。但是,Master控制關鍵功能,如RegionServer故障切換和完成區域分割。因此,雖然群集仍可以在沒有Master的情況下運行很短的時間,但應儘快重新啟動Master形狀。

接口

HMasterInterface公開的方法主要是面向元數據(metadata-oriented)的方法:

  • 表(createTable,modifyTable,removeTable,enable,disable)
  • ColumnFamily(addColumn,modifyColumn,removeColumn)
  • 區域(move,assign,unassign),例如,調用該Admin方法disableTable時,它由Master服務器提供服務。

流程

Master運行幾個後臺線程:

負載平衡器

週期性地,當沒有轉換區域時,負載均衡器將運行並移動區域以平衡群集的負載。

有關區域分配的更多信息,將在後續的章節中介紹。

CatalogJanitor

定期檢查並清理hbase:meta表格


分享到:


相關文章: