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正常运行,所以数据可以正常读写,但是不能创建删除表,也不能更改表结构