HBase可以基于Replication功能将实时写入的数据从主集群复制到备份集群,从而提高HBase数据的可靠性和数据访问的扩展性。HBase目前支持异步Replication、串行Replication和同步Replication。本文为您介绍如何开启HBase的异步Replication功能。

注意事项

  • HBase 1.x版本,如果要启用Replication,首先需将主、备集群的hbase.replication的参数值设置为true,然后重启主、备集群;HBase 2.x版本的hbase.replication已经移除,无需设置。
  • HBase是以列族为单位设置对应属性来决定是否启用Replication。

操作步骤

  1. 在主集群上添加peer。
    add_peer '100', CLUSTER_KEY => "${slave_zk}:${port}:/hbase"
    说明 ${slave_zk}${port}是备份集群的Zookeeper地址和端口。
  2. 修改表复制属性。
    以主集群上usertable表为例,修改其列族f复制属性,命令如下所示。
    alter 'usertable', {NAME => 'f', REPLICATION_SCOPE => '1'}

    将usertable表f列族的REPLICATION_SCOPE修改为1,usertable表f列族新增的数据将自动复制到备集群。

    说明 Replication不能复制DDL操作,所以备集群需要创建相同的表。
  3. 数据复制验证。
    1. 给主集群usertable添加新数据。
      put 'usertable', 'uid-foo','f:q','bar'
    2. 验证备集群数据。
      登录备集群节点,查看备集群usertable表是否已经复制了新数据,命令如下所示。
      get 'usertable','uid-foo'
      COLUMN                                               CELL
       f1:q                                                timestamp=2022-12-08T17:05:20.392, value=bar
      1 row(s)
      备份集群存在对应数据,说明异步Replication开启成功。
      说明 如果要对大批量复制数据进行验证,可以使用VerifyReplication工具验证,该工具使用详情请参见Verifying Replicated Data

相关文档