hbase replication 原理

查看文档,分析了一下 hbase replication的原理,简单记录一下:

http://hbase.apache.org/book.html#cluster_replication

hbase 的复制方式是 master-push 方式,即主集群推的方式,主要是因为每个rs都有自己的WAL。 一个master集群可以复制给多个从集群

复制是异步的,运行集群分布在不同的地方,这也意味着从集群和主集群的数据不是完全一致的。他的目标就是最终一致性

复制的格式与mysql的机遇状态的复制类似,不同于mysql的状态复制,整个WAL的修改(包括insert delete 和cell的修改)都会安装顺序的复制到从集群中。

WAL必须保存在hdfs直到所有的从集群复制完成

每个regionserver会记录最后复制的位置,然后每次复制都从最后复制的位置开始。rs会维持一个replication的队列,每个slave的的position都会单独维护

WAL 操作的生命周期:

1、客户端插入或删除
2、rs将操作以可以回放的格式写入wal
3、如果影响的cell正是replication的范围之内的cell,将操作放入replication的队列
4、如果slave rs 无法工作,master会重新选择新的rs作为replication的slave rs,并重新发送buffer中的数据
5、同时,wal 会被压缩并且存储到zookeeper的队列中,server rs通过移动操作日志的路径到一个中心的日志路径将操作日志归档。然后将path更新到内存中replication 线程的队列中
6、如果slave集群最终恢复正常,master会将中断复制这些log按照正常复制过程复制


replication内部原理:
hbase复制的状态都存储在zookeeper中,默认情况下,存储到 /hbase/replication。这个目录有两个子节点: peers znode 和 RS znode
如果 人为的删除 /hbase/replication 节点,会造成复制丢失数据

peers znode:
存储在 zookeeper中 /hbase/replication/peers 目录下,这
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值