Hbase的模块协作。
Hbase三个模块,Hmaster,RegionServer,zookeeper(zookeeper因为很重要所以也算做hbase的一个模块来看)
我们通过三个问题来看hbase三个模块之间的协作:
1.Hbase启动的时候发生了什么?
- HMaster启动,注册到zookeeper,等待RegionServer汇报(注册到zookeeper前会先注册到backupMaster节点,因为可能会有很多个master节点,最终的active master要看他们抢占锁的速度)
- RegionServer会先注册到zookeeper,并向HMaster汇报
- HMaster对各个RegionServer(包括失效的)的数据进行整理,分配Region和meta信息表,然后Hmaster会把meta信息交给zookeeper,之后b5-Hbase模块协作ackup Master会定期从active master处保持数据更新,以保证自己的meta表是最新的。
2.当RegionServer失效后会发生什么?
- HMaster将失效的RegionServer上的Region分配到其他节点。
- HMaster更新hbase:meta表来保证数据正常访问。
3.当HMaster失效后会发生什么?
- 如果配置了高可用的集群,HMaster失效后,处于Backup状态的其他HMaster节点毁推选出一个转为Active状态,集群可以继续正常运行。
- 如果没有配置高可用,由于RegionServer和zookeeper正常运行,所以数据可以正常读写,但是不能创建删除表,也不能更改表结构。