hbase表集群間數據同步 hbase replication


說明:集群A中有張表t1,現在想讓往t1中寫入數據后,集群B中的t1表,也會有這些數據,兩個集群中的t1表,名字和結構一樣;

 

操作案例:

【Hbase表集群間同步】
源集群要更改hbase配置:hbase.replication => true

目標集群hbase配置不動;

並且hbase的WAL日志要打開,因為replication 功能是依靠WAL來完成的;

 

修改表的配置,執行如下hbase命令:

disable 'tableName'
alter 'tableName', CONFIGURATION => {'hbase.region.store.parallel.put.limit.min.column.count' => 200, 'hbase.region.store.parallel.put.limit' => 100}
enable 'tableName'

這里將hbase.region.store.parallel.put.limit.min.column.count參數,線程處理的最小列數由默認100改為200,

將hbase.region.store.parallel.put.limit參數,單region處理的並發數由默認10改為100

通過上面對hbase表配置修改,我們的集群能夠達到單表2000條/秒的put速度,每個put有134列,已經能夠滿足我們實時同步的需求。

 

 

(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,后續再看一下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM