🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # master上线 master启动进行以下步骤: 1. 从zookeeper上获取唯一一个代表active master的锁,用来阻止其它master成为master。 2. 扫描zookeeper上的server父节点,获得当前可用的region server列表。 3. 和每个region server通信,获得当前已分配的region和region server的对应关系。 4. 扫描.META.region的集合,计算得到当前还未分配的region,将他们放入待分配region列表。 # master下线 由于master只维护表和region的元数据,而不参与表数据IO的过程,master下线仅导致所有元数据的修改被冻结(无法创建删除表,无法修改表的schema,无法进行region的负载均衡,无法处理region 上下线,无法进行region的合并,唯一例外的是region的split可以正常进行,因为只有region server参与),表的数据读写还可以正常进行。因此master下线短时间内对整个hbase集群没有影响。 从上线过程可以看到,master保存的信息全是可以冗余信息(都可以从系统其它地方收集到或者计算出来) 因此,一般hbase集群中总是有一个master在提供服务,还有一个以上的‘master’在等待时机抢占它的位置