HBase可以基于Replication功能将实时写入的数据从主集群复制到备集群,从而提高HBase数据的可靠性和数据访问的扩展性。HBase目前支持异步Replication、串行Replication和同步Replication。本文为您介绍如何开启HBase的异步Replication功能。
注意事项
HBase 1.x版本,如果要启用Replication,首先需将主、备集群的hbase.replication的参数值设置为true,然后重启主、备集群;HBase 2.x版本的hbase.replication已经移除,无需设置。
HBase是以列族为单位设置对应属性来决定是否启用Replication。
前提条件
已创建数据服务场景(DataServing)的主集群和备集群,详情请参见创建集群。
已在主、备集群中,分别创建HBase数据表,详情请参见使用HBase Shell。
说明本文示例中,HBase数据表名为table1。
操作步骤
连接HBase。
通过SSH方式登录主集群,详情请参见登录集群。
执行以下命令,连接HBase。
hbase shell
在主集群上添加peer。
add_peer '100', CLUSTER_KEY => "${slave_zk}:${port}:/hbase"
说明${slave_zk}
和${port}
是备集群的Zookeeper内网地址和端口。修改表复制属性。
以主集群上table1表为例,修改其列族cf1复制属性,命令如下所示。
alter 'table1', {NAME => 'cf1', REPLICATION_SCOPE => '1'}
将table1表cf1列族的
REPLICATION_SCOPE
修改为1,table1表cf1列族新增的数据将自动复制到备集群。说明Replication不能复制DDL操作,所以备集群需要创建相同的表。
数据复制验证。
给主集群table1添加新数据。
put 'table1', 'r3','cf1:q','bar'
验证备集群数据。
登录备集群节点,查看备集群table1表是否已经复制了新数据,命令如下所示。
get 'table1','r3' COLUMN CELL cf1:q timestamp=2022-12-08T17:05:20.392, value=bar 1 row(s)
备集群存在对应数据,说明异步Replication开启成功。
说明如果要对大批量复制数据进行验证,可以使用VerifyReplication工具验证,该工具使用详情请参见Verifying Replicated Data。
相关文档
开启串行Replication,请参见Serial Replication。
开启同步Replication,请参见Synchronous Replication。