HBase集群迁移
使用场景
- 大版本升级,HBase1.x 升级 HBase2.x
- 跨地域迁移,例如从青岛机房迁移到北京机房
- HBase1.x 升级 HBase2.x
- 集群升配,例如从4核8G迁移到8核16G集群
- 业务拆分,将部分业务迁移到新的集群
BDS迁移架构
- BDS采用分布式的架构,由Master节点生成、调度任务给各个worker节点
- worker节点负责具体的任务执行
- BDS支持表meta信息、历史数据、增量的日志数据从源端迁移到目标端
BDS迁移优势
- 不停服数据迁移,同时搞定历史数据迁移、实时增量数据的同步。
- 迁移过程中不会和源集群的HBASE交互,只读取源集群的HDFS,尽可能减少对源集群在线业务的影响
- 文件层的数据拷贝比通常API层的数据迁移通常能节省50%以上的流量
- 高效性,单个节点迁移速度可达到100MB/s,节点数支持水平扩展,能够满足支持TB、PB级别的数据迁移
- 稳定性,有完善的错误重试机制,实时监控任务速度和进度,支持任务失败报警
- 正确性,能够进行数据校验
- 支持自动同步Schema,保证分区一致
版本支持
- Hadoop 版本:2.x
- HBase:1.x <-> 1.x | 1.x -> 2.x | 2.x <-> 2.x (不支持开启Kerberos集群和单节点云HBase实例)
- Phoenix:4.x <-> 4.x | 5.x <-> 5.x (跨版本可能存在兼容问题)
迁移步骤
- 购买及环境准备
- 客户 - 购买BDS迁移服务,并绑定指定VPC(VPC下的HBase集群可以相互迁移)
- 协商 - 环境打通(详见网络环境打通)
- 迁移
- 客户 - 登陆BDS操作页面
- 客户 - 添加HBase数据源
- 客户 - 创建增量同步通道,同步表的实时增量写入数据到目标集群
- 客户 - 提交历史数据迁移任务,迁移历史存量数据
验证
- 客户 - 验证
- 客户 - 业务切换
数据迁移过程中为了保证数据不丢失,优先开启增量数据的同步,增量同步通道稳定后提交历史数据迁移
注意事项
- 增量同步不支持bulkload的数据
- 迁移前请确认目标集群的HDFS容量,防止迁移过程中出现容量写满的情况
- 增量同步提交前,推荐修改一下源集群的日志保留时间,给增量同步出错预留一些处理的时间 (hbase-site.xml 的 hbase.master.logcleaner.ttl 调大为12小时以上,重启HMaster )
- 关于业务切换,当增量同步的时延比较小(几秒或者几百毫秒),业务不敏感的话,源集群可以不停写,直接切换业务,同步服务会快速补齐数据。
- 客户无需在目标集群创建表,BDS同步服务会自动创建和源集群一样的表,包括分区的信息。客户自建的目标表可能会和源表分区很不一致,这可能会导致迁移完成之后,目标表会进行频繁的split、compaction,如果表的数据量十分庞大,可能会导致这个过程非常耗时
- 如果源表带有 coprocessor, 在创建目标表的时候可能会报错,因为目标集群不包含对应的coprocessor,遇到此类问题请钉钉联系侧田
- 对于大表的数据校验,抽样比例不宜过大,不然会对目标集群的业务产生一定的影响
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论