全部产品

HBase集群迁移

更新时间:2019-06-13 12:40:25

使用场景

  1. 大版本升级,HBase1.x 升级 HBase2.x
  2. 跨地域迁移,例如从青岛机房迁移到北京机房
  3. HBase1.x 升级 HBase2.x
  4. 集群升配,例如从4核8G迁移到8核16G集群
  5. 业务拆分,将部分业务迁移到新的集群

BDS迁移架构

1

  • BDS采用分布式的架构,由Master节点生成、调度任务给各个worker节点
  • worker节点负责具体的任务执行
  • BDS支持表meta信息、历史数据、增量的日志数据从源端迁移到目标端

BDS迁移优势

  1. 不停服数据迁移,同时搞定历史数据迁移、实时增量数据的同步。
  2. 迁移过程中不会和源集群的HBase交互,只读取源集群的HDFS,尽可能减少对源集群在线业务的影响
  3. 文件层的数据拷贝比通常API层的数据迁移通常能节省50%以上的流量
  4. 高效性,单个节点迁移速度可达到100MB/s,节点数支持水平扩展,能够满足支持TB、PB级别的数据迁移
  5. 稳定性,有完善的错误重试机制,实时监控任务速度和进度,支持任务失败报警
  6. 正确性,能够进行数据校验
  7. 支持自动同步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 (跨版本可能存在兼容问题)

迁移步骤

注意事项

  1. 增量同步不支持bulkload的数据
  2. 迁移前请确认目标集群的HDFS容量,防止迁移过程中出现容量写满的情况
  3. 增量同步提交前,推荐修改一下源集群的日志保留时间,给增量同步出错预留一些处理的时间 (hbase-site.xml 的 hbase.master.logcleaner.ttl 调大为12小时以上,重启HMaster )
  4. 关于业务切换,当增量同步的时延比较小(几秒或者几百毫秒),业务不敏感的话,源集群可以不停写,直接切换业务,同步服务会快速补齐数据。
  5. 客户无需在目标集群创建表,BDS同步服务会自动创建和源集群一样的表,包括分区的信息。客户自建的目标表可能会和源表分区很不一致,这可能会导致迁移完成之后,目标表会进行频繁的split、compaction,如果表的数据量十分庞大,可能会导致这个过程非常耗时
  6. 如果源表带有 coprocessor, 在创建目标表的时候可能会报错,因为目标集群不包含对应的coprocessor,遇到此类问题请钉钉联系侧田
  7. 对于大表的数据校验,抽样比例不宜过大,不然会对目标集群的业务产生一定的影响