hbase表集群间数据同步 hbase replication

说明:集群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,后续再看一下

原文地址:https://www.cnblogs.com/weiyiming007/p/15797880.html