HBase可以基于Replication功能将实时写入的数据从主集群复制到备份集群,从而提高HBase数据的可靠性和数据访问的扩展性。HBase目前支持异步Replication、串行Replication和同步Replication。本文为您介绍如何开启HBase的异步Replication功能。
注意事项
- HBase 1.x版本,如果要启用Replication,首先需将主、备集群的hbase.replication的参数值设置为true,然后重启主、备集群;HBase 2.x版本的hbase.replication已经移除,无需设置。
- HBase是以列族为单位设置对应属性来决定是否启用Replication。
操作步骤
- 在主集群上添加peer。
add_peer '100', CLUSTER_KEY => "${slave_zk}:${port}:/hbase"
说明 ${slave_zk}
和${port}
是备份集群的Zookeeper地址和端口。
- 修改表复制属性。
以主集群上usertable表为例,修改其列族f复制属性,命令如下所示。
alter 'usertable', {NAME => 'f', REPLICATION_SCOPE => '1'}
将usertable表f列族的REPLICATION_SCOPE
修改为1,usertable表f列族新增的数据将自动复制到备集群。
说明 Replication不能复制DDL操作,所以备集群需要创建相同的表。
- 数据复制验证。
- 给主集群usertable添加新数据。
put 'usertable', 'uid-foo','f:q','bar'
- 验证备集群数据。
登录备集群节点,查看备集群usertable表是否已经复制了新数据,命令如下所示。
get 'usertable','uid-foo'
COLUMN CELL
f1:q timestamp=2022-12-08T17:05:20.392, value=bar
1 row(s)
备份集群存在对应数据,说明异步Replication开启成功。