HBase 主主replication

本文只做原理描述,未经过线上业务长时间验证

写操作:
HBase双活策略,写操作实现有两种方式:
1.用户业务端双写,同一份数据写两个集群
优点:不用关心底层异常等问题

缺点:需要启动两个写HBase的任务

2.通过HBase replication机制实现,双向replication功能测试是通过的
优点:只需要启动一套写HBase的任务,如果有一部分数据写了A集群,另外一部分写了B集群,两边也可以自动同步

缺点:底层有异常可能需要补数(之前线上有单向replication的应用,没有应用过双向replication),最好离线有日志当有异常时可以补数据。

因为HBase replication是同步实时写的操作,所以不支持bulkload的数据同步

读操作:
客户端目前不支持自动切换,例如查询服务需要从A集群切换到B集群的话,需要重启查询服务。或者用户自己实现两个集群的连接切换的封装。

目前HBase表双活只支持实时写入的数据

大致原理:数据写到源集群表中,同时会写源集群的WAL日志(WAL日志用来做故障恢复和双活),如果配置了peer和replication,源集群的Regionserver服务中会有逻辑读取WAL日志的信息,将WAL日志信息写到从集群同名表中

这里写图片描述

实时写入数据的HBase表双活配置:

下面操作在两个集群都需要做,这样才能让两边数据同步。

1.源集群增加目标集群peer配置:
在源集群增加目标集群对应的peer(第一个参数:自定义的集群peerId,比如永顺存储集群peerId我定义为1。第二个参数:目标集群zk以及端口和znode root节点:
hbase.zookeeper.quorum:hbase.zookeeper.property.clientPort:zookeeper.znode.parent)

add_peer '1',CLUSTER_KEY=> "目标集群zookeeper地址,多个用英文逗号分隔:2181:/hbase"

2.源集群执行,对应表对应cf,增加replication配置

alter 'replication_source_table',{NAME=>'对应的CF01', REPLICATION_SCOPE=>'1'},{NAME=>'对应的CF02', REPLICATION_SCOPE=>'1'}

执行完这个alter之后,测试一下,往源集群写入的数据会自动往目标集群同名的表中写入

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值