跳到主要内容

85、HBase架构:Master

Master

HMaster是主服务器(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表格。