全部产品

Phoenix全增量迁移

使用场景

  1. 跨地域迁移 - 从青岛机房迁移到北京机房

  2. 集群升配 - 从4核8G迁移到8核16G集群

  3. 业务拆分 - 将部分业务迁移到新的集群

功能列表

  1. 仅支持同版本之间Phoenix迁移,不支持phoenix 4.x跨版本迁移到phoenix 5.x

  2. 支持表结构迁移、实时数据同步、全量数据迁移

  3. 支持整库迁移、namespace迁移、表级别迁移

  4. 迁移支持表重命名

  5. 迁移支持指定时间范围、rowkey范围、指定列

  6. 提供Open API,支持调用API创建迁移任务

迁移优势

  1. 不停服数据迁移,同时搞定历史数据迁移、实时增量数据的同步。

  2. 迁移过程中不会和源集群的HBASE交互,只读取源集群的HDFS,尽可能减少对源集群在线业务的影响

  3. 文件层的数据拷贝比通常API层的数据迁移通常能节省50%以上的流量高效性

  4. 单个节点迁移速度可达到150MB/s,节点数支持水平扩展,能够满足支持TB、PB级别的数据迁移稳定性

  5. 有完善的错误重试机制,实时监控任务速度和进度,支持任务失败报警

  6. 自动同步Schema,保证分区一致

使用限制

  1. 不支持开启Kerberos集群

  2. 不支持单节点云HBase实例

  3. 由于网络原因,不支持经典网络下的云HBase实例

  4. 增量数据同步基于HBase WAL实现异步数据同步, Bulkload的数据、不写WAL的数据将不会被同步

准备工作

  1. 检查源集群、目标集群、LTS的网络连通性

  2. 添加Phoenix数据源

  3. 登陆LTS操作页面

创建任务

Lindorm/HBase迁移 => 一键迁移 => 创建任务

phoenix_migration
  1. 任务名只允许英文字符、数字。可不填,默认任务id作为任务名

  2. 选择源集群和目标集群,如果集群不存在点击?号进行集群添加

  3. 选择需要的操作

    1. 表结构迁移 - 在目标集群创建表(schema、分区信息一致), 目标集群表已存在会跳过

    2. 实时数据复制 - 同步源集群实时增量的数据

    3. 历史数据迁移 - 文件级别的全量文件物理迁移

  4. 填写表名,换行符分割,详细信息请见参数说明

  5. 高级配置可不填

查看任务

Lindorm/HBase迁移 => 一键迁移

phoenix-migration

查看任务详情

Lindorm/HBase迁移 => 一键迁移 => 点击对应的任务名

phoenix-migartion-task-detail查看对应任务的执行情况

phoenix-migration-task-detail-2

关于切流

  1. 等待全量任务迁移完成,增量同步的时延比较小(几秒或者几百毫秒)

  2. 开启LTS数据抽样校验,对于大表的抽样校验,抽样比例不宜过大,避免对在线业务产生影响

  3. 业务验证

  4. 业务切流

注意事项

  1. 迁移前请确认目标集群的HDFS容量,防止迁移过程中出现容量写满的情况

  2. 增量同步提交前,推荐修改一下源集群的日志保留时间,给增量同步出错预留一些处理的时间 (hbase-site.xml 的 hbase.master.logcleaner.ttl 调大为12小时以上,重启HMaster )

  3. 客户无需在目标集群创建表,BDS同步服务会自动创建和源集群一样的表,包括分区的信息。客户自建的目标表可能会和源表分区很不一致,这可能会导致迁移完成之后,目标表会进行频繁的split、compaction,如果表的数据量十分庞大,可能会导致这个过程非常耗时

  4. 如果源表带有 coprocessor, 在创建目标表的时候需要确保目标集群包含coprocessor对应的jar包