更新时间:2023-03-17 GMT+08:00

HBase HA方案介绍

HBase HA原理与实现方案

HBase中的HMaster负责region分配,当regionserver服务停止后,HMaster把相应region迁移到其他RegionServer。为了解决HMaster单点故障导致HBase正常功能受到影响的问题,引入HMaster HA模式。

图1 HMaster高可用性实现架构

HMaster高可用性架构通过在ZooKeeper集群创建ephemeral zookeeper 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进行连接。