Region的管理
前提:一个region只能分配给一个region server
1、master记录了当前有哪些可用的region server。以及当前哪些region分配给了哪些region server,哪些region 还没有分配。
2、当需要分配的新的region,并且有一个region server上有可用空间时,master就给这个region server发送一个装 载请求,把region分配给这个region server。
3、region server得到请求后,就开始对此region提供服务。
region server上线
前提:master使用zookeeper来跟踪region server状态。
1、当某个region server启动时,首先在zookeeper上的/hbase/rs目录下建立代表自己的znode。
2、 master订阅了/hbase/rs目录上的变更消息,当/hbase/rs目录下的文件出现新增或删除操作时,master可以得 到来自zookeeper的实时通知。因此一旦region server上线,master能马上得到消息。
region server下线
前提:master使用zookeeper来跟踪region server状态。
1、当region server下线时,它和zookeeper的会话断开。
2、zookeeper而自动释放代表这台server的文件上的独占锁(znode)
3、zookeeper将变化发送给master
4、master 将挂掉的region server的region分配给其它还活着的regionserver。