美文网首页
十、复制

十、复制

作者: loukey_j | 来源:发表于2020-01-13 13:54 被阅读0次

1、复制场景

1.1、现有一个SSD的HBase集群被业务方A访问,业务方A对HBase集群的延迟和可用性要求非常高。现在又收到业务方B的数据分析任务需求,每天定期对表TableX跑数据分析任务。

思路:

用一批成本较低的机器搭建一个离线的HBase集群,然后把表TableX的全量数据导入离线集群,再通过复制把增量数据实时地同步到离线集群。分析任务就跑在离线集群上,既满足了业务方B的需求,又不会对业务方造成任何影响。操作方式大概如下。

1)先确认表TableX的多个Colum Family都已经将REPLICATION_SQCOPE设为1.

2)在SSD集群上添加一条DISABLED复制链路,提前把主集群正在写的HLog堵在复制队列中。

3)对TableX做一个Snapshot,并用HBase内置的ExportSnapshot工具把Snapshot拷贝到离线集群上

4)待Snapshot数据拷贝完成后,从Snapshot中恢复一个TableX表到离线集群

5)打开步骤1中添加的Peer

6)等待peer=100,所有堵住的HLog都被在线集群推送到离线集群,也就是两个集群的复制延迟等于0,就可以开始在离线集群上跑分析任务了。

1.2、HBase集群迁移

1.3、跨HBase的数据备份

1.4、HBase同步到异构的存储系统

2、HBase2.X复制原理

1)客户端将创建Peer的请求发送到Master

2)Master给每一个RegionServer发送Peer请求,直到所有的RS成功创建Peer;否在重试

3)Master返回给HBase客户端

2.1、RegionServer创建Peer的内部实现

1)在创建Peer时,每个RegionServer会创建一个ReplicationSource线程。ReplicationSource首先把正在写的HLog保存在复制队列中,然后注册监听HLog Roll操作。如果把HLog发生了Roll,那么ReplicationSource会把对应的HLog分到对应的待复制HLog队列里面,同时把HLog名字持久化到Zk上,这样重启后还可以接着复制未复制完成的HLog

2)每个待复制HLog队列后面会有一个ReplicationSourceWALReder的线程,不断从队列中取出一个HLog,然后一个个把HLog的Entry读取出来,放到Entry队列里面

3)Entry队列后面还会有一个ReplicationSourceShipper的线程,不断从队列中取出一个Log Entry,交给Peer的ReplicationEndopint,他会把Entry通过RPC发送到Peer集群。Peer集群对应的RS收到请求后解析出Entry,进行数据复制。一次RPC成功后ReplicationSourceShipper会把成功复制的HLog offset写入ZK.以便重启之后,下次还能找到最新的位置开始复制。

相关文章

  • 十、复制

    1、复制场景 1.1、现有一个SSD的HBase集群被业务方A访问,业务方A对HBase集群的延迟和可用性要求非常...

  • 02.Mac 圈点快捷键

    Commond+Shift+5 十字框截图 Commond+c 复制 Commond+Shift+c 复制图像 C...

  • 互联网这个世界上最大的复印机,软件成了重灾区

    深刻的感受到随着互联网的发展,复制一款软件的成本也在大大降低,造成了大量软件复制品的出现,而且这些复制品的品质也十...

  • 思考:阻断非价值惯性,不要让没有价值的事情影响自己!

    1.我们每天都是在复制粘贴中生活和工作吗?今天复制了昨天,昨天复制了前天,这样几十年如一日的重复,你有没有注意到?...

  • Copy

    copy 复制 浅复制:指针的复制(地址的复制) 深复制:对象内容的复制 Foundion的基本对象复制 基本对象...

  • Redis 复制原理

    目录: 复制过程 数据间的同步 全量复制 部分复制 心跳 异步复制 复制原理 1. 复制过程 复制的过程步骤如下:...

  • 使用Xposed框架实现全局复制

    转载注明出处:简书-十个雨点 简介 在使用辅助服务实现全局复制中,我介绍了通过辅助服务实现全局复制的功能,极大的提...

  • 听闻爱情十有九悲

    听闻爱情十有九悲,但是青春无畏将来,每个人的青春都是唯一无法复制的,也许那时的爱情也是一样的,无可粘贴复制...

  • 十月复盘稿

    待复制… 十月的最后一天,开始复盘十月。 在过去的一个月里…

  • iOS常见面试题

    1、浅复制和深复制的区别 浅层复制:只复制指向对象的指针,而不复制引用对象本身。 深层复制:复制引用对象本身。 意...

网友评论

      本文标题:十、复制

      本文链接:https://www.haomeiwen.com/subject/kyggactx.html