更新时间:2026-08-20 GMT+08:00
分享

配置HBase主备集群数据自动备份

场景介绍

在HBase集群容灾场景中,管理员需要将主集群的数据实时同步到备集群,以实现数据容灾和故障切换。当主集群出现故障时,备集群可以快速接管业务,保障业务连续性。HBase提供基于Replication机制的主备集群数据自动备份功能,通过WAL(Write Ahead Log)将主集群的数据变更实时同步到备集群,实现数据增量同步。当主集群故障时,ReplicationSyncUp工具会将未同步的WAL数据强制同步到备集群,确保数据完整性。本文介绍如何配置HBase主备集群数据自动备份功能。

  • Replication机制:HBase提供的数据复制功能,通过WAL(Write Ahead Log)将主集群的数据变更实时同步到备集群。Replication支持异步复制,主备集群之间允许一定的数据延迟。
  • WAL(Write Ahead Log):HBase的预写日志,所有数据修改操作都会先写入WAL,然后再写入MemStore。WAL用于数据恢复和主备同步,确保数据不丢失。
  • ReplicationSyncUp工具:HBase提供的命令行工具,用于在主集群故障时将未同步的WAL数据强制同步到备集群。该工具通过ZooKeeper获取WAL的处理进度,将未复制的WAL队列同步到备集群。
  • 对等关系(Peer):Replication机制中主备集群之间的复制关系定义,包括对端集群地址、复制范围、复制类型等信息。

前提条件

  • 主备集群已经安装并且启动。
  • 主备集群上的时间必须一致,而且主备集群上的NTP服务必须使用同一个时间源。
  • 当主集群HBase服务关闭时,ZooKeeper和HDFS服务应该启动并运行。
  • 该工具应该由启动HBase进程的系统用户运行。
  • 如果集群已启用Kerberos认证(安全模式),请确保备集群的HBase系统用户具有主集群HDFS的读取权限。备集群将更新HBase系统ZooKeeper节点和HDFS文件。
  • 主集群HBase故障后,主集群的Zookeeper、文件系统和网络依然可用。

约束与限制

如果备集群处于关闭状态或关闭了对等关系,该工具正常运行,但该对等关系复制不会发生。

配置参数

在Manager界面,选择“集群 > 服务 > HBase > 配置 > 全部配置”,搜索以下参数并修改:

参数名称

描述

默认值

hbase.replication.bulkload.enabled

是否开启批量加载数据复制功能,参数值类型为Boolean。开启批量加载数据复制功能后该参数须在主集群中设置为“true”。

false

hbase.replication.cluster.id

源HBase集群ID。开启批量加载数据复制功能必须设置该参数,在源集群定义,参数值类型为String。

-

使用ReplicationSyncUp工具

在主集群HBase客户端执行以下命令:

hbase org.apache.hadoop.hbase.replication.regionserver.ReplicationSyncUp -Dreplication.sleep.before.failover=1

“replication.sleep.before.failover”是指在RegionServer启动失败时备份其剩余数据前需要的休眠时间。由于30秒(默认值)的睡眠时间没有任何意义,因此将其设置为1(s),使备份过程更快触发。

验证操作:

执行ReplicationSyncUp工具后,可通过以下方式验证数据同步是否成功:

  1. 在备集群HBase客户端执行status命令,查看集群状态是否正常。
  2. 在备集群执行scan '表名'命令,验证关键数据是否已同步到备集群。
  3. 检查备集群的RegionServer日志,确认是否有WAL重放成功的日志。

注意事项

  • 当主集群关闭时,此工具将从ZooKeeper节点(RegionServer znode)获得WAL的处理进度以及WAL的处理队列,并将未复制的队列复制到备集群中。
  • 每个主集群的RegionServer在备集群ZooKeeper上的replication节点下都有自己的znode。它包含每个对等集群的一个znode。
  • 当RegionServer故障时,主集群的每个RegionServer都会通过watcher收到通知,并尝试锁定故障RegionServer的znode,包含它的队列。成功创建的RegionServer会将所有队列转移到自己队列的znode下。队列传输后,将从旧位置删除。
  • 在主集群关闭期间,ReplicationSyncUp工具将使用来自ZooKeeper节点的信息同步主备集群的数据,并且RegionServer znode的wals将被移动到备集群下。

常见问题

  • ReplicationSyncUp工具执行失败

    常见的失败原因包括:主集群ZooKeeper不可用、主集群HDFS不可用、备集群HBase未启动、网络不通等。

    请确认主集群的ZooKeeper和HDFS服务正常运行,备集群HBase服务已启动。检查主备集群间的网络连通性。查看工具执行日志定位具体错误信息。

  • 数据同步后备集群无法接管业务

    备集群无法接管业务的常见原因包括:WAL数据未完全同步、备集群Region未正确加载、客户端配置未切换到备集群等。

    请在备集群执行status命令确认集群状态正常,执行scan命令验证数据完整性。确认客户端配置已切换到备集群的ZooKeeper地址。如有Region未加载,可手动执行assign命令。

相关文档

相关文档