hdp2.4 -- hbase集群replication

1、两个集群 (create )建相同的表
2、主(备)集群 add_peer 备(主)集群
3、主(备)集群需要同步的表操作 alter 'table_name',{NAME=>'列族名', REPLICATION_SCOPE=>'1'},同步数据在开启REPLICATION_SCOPE=>'1' 后产生的数据进行同步,开启之前写入的数据不会同步

list

status

list_namespace

 list_peers, list_replicated_tables    , remove_peer '2'

 
View Code

 list_namespace_tables 'default'

describe 'table_name'

create 'replication_test','f1','f2'  (主备集群都操作)

1 hbase(main):011:0> put 'replication_test','rk0001','f1:name','zhanzongxin1'
2 0 row(s) in 0.1770 seconds
3 
4 hbase(main):012:0> get 'replication_test','rk0001'
5 COLUMN CELL
6 f1:name timestamp=1714374444662, value=zhanzongxin1
7 1 row(s) in 0.0540 seconds

hbase(main):015:0> scan "replication_test"
ROW COLUMN+CELL
rk0001 column=f1:name, timestamp=1714374523833, value=zhanzongxin11
1 row(s) in 0.0320 seconds

 主123 备678   (hbase-unsecure可通过hbase的配置 zookeeper.znode.parent查看)

add_peer '1',"hdp6.kzx.com,hdp7.kzx.com,hdp8.kzx.com:2181:/hbase-unsecure"   (主集群操作,备集群不操作的话就单边复制)
add_peer '1',"hdp1.kzx.com,hdp2.kzx.com,hdp3.kzx.com:2181:/hbase-unsecure"   (备集群操作 这样就主主复制,两边都可以复制了)

alter 'replication_test',{NAME=>'f2', REPLICATION_SCOPE=>'1'}   (单边复制主集群操作就行,主主复制两个集群表都得操作,describe可以查 REPLICATION_SCOPE => '1')

 

 

A B C 三个集群

AB已经主主复制,现在异地C集群加入

A同步数据到C:A集群操作add_peer添加C集群的zk地址,C建表,即可,数据会全量同步(AB复制已经对表开启过REPLICATION_SCOPE=>'1')

如果C在A集群add_peer之前就已经建好表了,在A集群add_peer之后数据也会同步到C,add_peer和建表的顺序哪个先都ok

如果C数据需要同步到A需要对C的表操作 alter 'table_name',{NAME=>'列族名', REPLICATION_SCOPE=>'1'} ,且操作 alter之前的数据不会同步到A,只会同步操作REPLICATION_SCOPE=>'1'之后的数据

一个表REPLICATION_SCOPE=>'1'之前的数据不会被同步,REPLICATION_SCOPE=>'1'之后写入的数据都会在其他集群建表后进行同步

posted on 2024-04-29 15:08  寒星12345678999  阅读(11)  评论(0编辑  收藏  举报