HBase数据迁移解决方案的设计与实践

本次分享HBase同构数据源、异构数据源的历史数据、增量数据迁移方案
展开查看详情

1.HBase数据迁移解决方案的设计与实践 熊嘉男(侧田) 2019.01

2.01 同构数据源迁移 使⽤用场景、⽅方案⽐比较、问题、优化 02 异构数据源迁移 使⽤用场景、剖析⽅方案

3.01 同构数据源迁移

4.1.1 使⽤用场景、能⼒力力

5.典型场景 •  机房搬迁 •  HBase主备集群的搭建 •  集群冷备、异地容灾 •  集群业务拆分 为了无法计算的价值

6.数据迁移所需要具备的能⼒力力 • 同时搞定历史数据、实时增量量数据 • 尽可能减少对在线业务的影响 • 避免对业务应⽤用侵⼊入 • 稳定性,全程⽆无⼈人值守 • 正确性,对迁移的数据进⾏行行数据校验 • ⾼高效性,能够满⾜足⽀支持TB、PB级别的数据迁移

7.1.2 现有⽅方案

8.1.2.1 历史数据迁移

9.历史数据迁移⽅方案 Scan 原表,将结果 put 到⽬目标表 优点 1.  实现简单 缺点 1.  ⼤大表全表Scan,⼤大数据量量的Put,影响集群业务 local read remote read 2.  数据迁移低效 HFile HFile HFile HFile flush Put WAL Region MemStore Client wal RegionServer

10.历史数据迁移⽅方案 1. 加锁,不不允许数据变更更 Create Snapshot & Export Snapshot Memstore 优点 1.  原⽣生⾃自带 2.  可以粗粒度控制迁移速度 snapshot 2. flush 成 HFile 缺点 1.  功能、性能、操作都发⽣生在源集群,可能迁移过 MR Target Cluster 程中,对源集群的性能和稳定性产⽣生影响 2.  快照可能会暂⽤用存储资源 3. 为所有⽂文件创建引⽤用⽂文件

11.1.2.2 增量量数据迁移

12.实时增量量数据迁移⽅方案 客户端双写 Client 缺点 1.  需要对客户端应⽤用做改造 2.  客户端会受到异常集群的影响 clusterA clusterB

13.实时增量量数据迁移⽅方案 Replication 优点 1.  原⽣生⾃自带 2.  错误重试,增量量数据不不丢失 缺点 1.  不不同版本存在兼容的问题 2.  bug fix 困难,不不易易升级 3.  不不易易通过扩展节点,来解决同步积压的问题

14.1.3 阿⾥里里⽅方案

15.Big DataHub Service 历史数据迁移 — Copy HFiles and load 优点 历史数据的迁移不不会访问HBase,只会和HDFS交互,降低对业务的影响 缺点 需要注意Region Split、Region Merge、Compaction 等操作的影响 实时增量量数据迁移 — Copy HLogs and restore 优点 易易扩展,不不同版本的适配 缺点 ⽇日志⽬目录不不停的发⽣生变化,需要保留留没有迁移的⽇日志

16.Big DataHub Service

17.⽅方案的优势 •  源与⽬目标异构,⽀支持跨版本的迁移,可以更更好地从1.x灰度升级到2.x •  更更好的稳定性,对源与⽬目标集群的影响尽量量降到最低 •  更更好的扩展性

18.历史数据迁移的流程

19.Compaction对历史数据迁移的影响

20.Region Split对历史数据迁移的影响

21.优化—数据本地化率

22.优化—提升BulkLoad速度

23.增量量数据迁移流程

24.增量量数据迁移问题

25.总结

26.02 异构数据源迁移

27.2.1 使⽤用场景

28.异构数据源迁移的使⽤用场景 存放RDS的历史数据 •  RDS -> HBase 关系数据库挑战 单机存储性能容易易达到瓶颈,传统DB拆分困难,⼯工作量量⼤大 且复杂,周期⻓长 •  RDS -> Phoenix HBase的优势 对数据写⼊入⼗十分友好 数据完整性、强⼀一致性,易易扩容 数据的切分治理理全⾃自动 ⾮非常适合处理理历史数据的对账、历史数据的回 溯、历史数据离线分析 不不⽀支持跨⾏行行跨表事务

29.2.2 迁移⽅方案