HBase HA方案介绍
HBase HA原理与实现方案
HBase中的HMaster负责Region分配,当RegionServer服务停止后,HMaster会把相应Region迁移到其他RegionServer。为了解决HMaster单点故障导致HBase正常功能受到影响的问题,引入HMaster HA模式。
HMaster高可用性架构是通过在ZooKeeper集群创建Ephemeral node(临时节点)实现的。
当HMaster两个节点启动时都会尝试在ZooKeeper集群上创建一个znode节点Master,先创建的成为Active HMaster,后创建的成为Standby HMaster。
Standby HMaster会在Master节点添加监测事件。如果主节点服务停止,就会和ZooKeeper集群失去联系,session过期之后Master节点会消失。Standby节点通过监测事件(watch event)感知到节点消失,会去创建Master节点自己成为Active HMaster,主备倒换完成。如果后续停止服务的节点重新启动,发现Master节点已经存在,则进入Standby模式,并对Master znode创建监测事件。
当客户端访问HBase时,会首先通过ZooKeeper上的Master节点信息找到HMaster的地址,然后与Active HMaster进行连接。