12.3.3 HBase Master服务器

每台HRegion服务器都会和HMaster服务器通信,HMaster的主要任务就是告诉每个HRegion服务器它要维护哪些HRegion。

当一台新的HRegion服务器登录到HMaster服务器时,HMaster会告诉它先等待分配数据。而当一台HRegion死机时,HMaster会把它负责的HRegion标记为未分配,然后再把它们分配到其他HRegion服务器中。

如果当前HBase已经解决了之前存在的SPFO(单点故障),并且HBase中可以启动多个HMaster,那么它就能够通过ZooKeeper来保证系统中总有一个Master在运行。HMaster在功能上主要负责Table和HRegion的管理工作,具体包括:

管理用户对Table的增、删、改、查操作;

管理HRegion服务器的负载均衡,调整HRegion分布;

在HRegion分裂后,负责新HRegion的分配;

在HRegion服务器停机后,负责失效HRegion服务器上的HRegion迁移。