说明:集群A中有张表t1,现在想让往t1中写入数据后,集群B中的t1表,也会有这些数据,两个集群中的t1表,名字和结构一样;
操作案例:
【Hbase表集群间同步】
源集群要更改hbase配置:hbase.replication => true
目标集群hbase配置不动;
(1)源集群,同步user_1表到172.20.146.50集群
hbase> create 'user_1', 'info' #表如果已经存在,就不用创建了
hbase> add_peer '12','172.20.146.50:2181:/hbase'
hbase> alter 'user_1',{NAME =>'info', REPLICATION_SCOPE=>'1'}
hbase> set_peer_tableCFs '12','user_1'
hbase> list_peers
注意:172.20.146.50:2181:/hbase 为目的hbase集群所使用的zookeeper地址,多个zk可写为: zk1,zk2,zk3:2181:/hbase
HDP集群最后不是/hbase ,而是/hbase-secure 具体的可以看hbase的配置 zookeeper.znode.parent
add_peer和set_peer_tableCFs中的'12' 对应唯一id,每一张表的 add_peer id可随意添加但是要唯一。
(2)目的集群:
在目的hbase节点上创建表与源hbase 的表结构一致
hbase> create 'user_1', 'info'
在源集群表中添加数据,看目的集群表中是否已经同步了;
(3)暂停 HBase 集群复制:
hbase> disable_table_replication "t1"
(4)删除复制:
hbase> remove_peer 'id' #谨慎操作,最好不要删掉,因为目前发现,删掉peer后,源集群hbase会挂掉,我这版本是CDH5.13.1,后续再看一下