Region分配
一个Region只能分配给一个HRegion Server。HMaster记录了当前有哪些可用的HRegion Serever。以及当前那些Region分配个那些HRegion Server,哪些Region还没有分配。当需要分配新的Region,并且有一个HRegion Server上有可用空间时,HMaster就给这个HRegion Server发送一个装载请求,把Region分配给这个HRegion Server。HRegion Server得到请求之后,就开始对此Region提供服务。
HRegion Server上线
HMaster使用Zookeeper来跟踪HRegion Server状态。当某个HRegion Server启动时,首先会在Zookeeper上的server目录下简历代表自己的znode。由于HMaster订阅了server目录上的变更消息,当server目录下的文件出现新增或删除操作时,HMaster可以得到来自Zookeeper的实时通知。因此一旦HRegion Server上线,HMaster可以马上得到消息。
HRegion Server下线
当HRegion Server下线是,她会和Zookeeper的会话断开,Zookeeper自动释放代表这台server的文件上的独占锁。HMaster就可以确定:
1.HRegion Server和Zookeeper之间的网络断开。
2.HRegion Server挂了。
无论哪种情况,HRegion Server都无法继续为它的Region提供服务,此时HMaster会删除server目录下代表这台HRegion Server的znode数据,并将这台HRegion Server的Region分配给其它还活着的节点。