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'
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'之后写入的数据都会在其他集群建表后进行同步