文档首页/ MapReduce服务 MRS/ 最佳实践/ 数据迁移/ 使用CDM服务迁移HBase数据至MRS集群
更新时间:2024-08-03 GMT+08:00

使用CDM服务迁移HBase数据至MRS集群

应用场景

本章节适用于将线下IDC机房或者公有云HBase集群中的数据(支持数据量在几十TB级别或以下的数据量级)迁移到华为云MRS服务。

本章节以通过华为云CDM服务 2.9.1.200版本进行数据迁移为例介绍。不同版本操作可能有差异,具体操作详情以实际版本对应的操作指导为准。

CDM服务支持迁移的数据源可参考支持的数据源,数据源为Apache HBase时,建议使用的版本为2.1.X、1.3.X,请执行搬迁前务必确认是否支持搬迁。

方案架构

HBase会把数据存储在HDFS上,主要包括HFile文件和WAL文件,由配置项“hbase.rootdir”指定在HDFS上的路径,华为云MRS集群的默认存储位置是“/hbase”文件夹下。

HBase自带的一些机制和工具命令也可以实现数据搬迁,例如通过导出Snapshots快照、Export/Import、CopyTable方式等,可以参考Apache官网相关内容。

图1 HBase数据迁移示意

方案优势

场景化迁移通过迁移快照数据然后再恢复表数据的方法,能大大提升迁移效率。

约束与限制

搬迁数据量较大时,对网络通信要求较高,执行搬迁任务时,可能会影响其他业务,建议在业务空闲期进行数据迁移任务。

全量数据迁移

  1. 登录CDM管理控制台。
  2. 创建CDM集群,该CDM集群的安全组、虚拟私有云、子网需要和迁移目的端集群保持一致,保证CDM集群和待迁移的MRS集群之间网络互通。
  3. 在“集群管理”页面单击待操作集群对应“操作”列的“作业管理”。
  4. 在“连接管理”页签,单击“新建连接”。
  5. 参考CDM服务的新建连接页面,添加到迁移源端集群的连接,连接器类型根据实际集群来选择,例如连接器类型选择“Apache HBase”。

    (可选)HBase迁移建议使用高权限用户,单击“显示高级属性”,新增迁移所需用户“hadoop.user.name = 用户名(如omm用户)”。

    图2 到迁移源端集群的连接

  6. 在“连接管理”页签,单击“新建连接”。
  7. 参考CDM服务的新建连接页面,添加到迁移目的端集群的连接,连接器类型根据实际集群来选择,例如连接器类型选择“MRS HBase”。

    (可选)HBase迁移建议使用高权限用户,单击“显示高级属性”,新增迁移所需用户“hadoop.user.name = 用户名(如omm用户)”。

    图3 到迁移目的端集群的连接

  8. 选择“作业管理”的“表/文件迁移”页签,单击“新建作业”。
  9. 进入作业参数配置界面,配置作业名称、源端作业和目的端作业参数,并选择要迁移的数据表,单击“下一步”。

    图4 HBase作业配置

  10. 配置源字段和目的字段的映射关系, 并单击“下一步”。
  11. 进入任务配置页面,不做修改,直接单击“保存”。
  12. 选择“作业管理”的“表/文件迁移”页签,在待运行作业的“操作”列单击“运行”,即可开始HBase数据迁移。
  13. 迁移完成后,可以在目的端集群和源端集群的HBase Shell命令行中,通过同样的查询语句,对比查询结果进行验证。

    例如:

    • 在目的端集群和源端集群上通过查询BTable表的记录数来确认数据条数是否一致,可添加“--endtime”参数排除迁移期间源端集群上有数据更新的影响。

      hbase org.apache.hadoop.hbase.mapreduce.RowCounter BTable --endtime=1587973835000

      图5 查询BTable表的记录数
    • 可执行以下命令查询指定时间段内的数据进行对比。

      scan 'BTable ', {TIMERANGE=>[1587973235000, 1587973835000]}

增量数据迁移

在业务割接前,如果源端集群上有新增数据,需要定期将新增数据搬迁到目的端集群。一般每天更新的数据量在GB级别可以使用CDM的“整库迁移”指定时间段的方式进行HBase新增数据迁移。

当前使用CDM的“整库迁移”功能时的限制:如果源HBase集群中被删除操作的数据无法同步到目的端集群上。

场景迁移的HBase连接器不能与“整库迁移”共用,因此需要单独配置“HBase”连接器。

  1. 参考全量数据迁移1~7步骤新增两个“HBase”连接器,连接器类型根据实际集群来选择。

    例如选择连接器类型时分别为源端集群和目的端集群选择“MRS HBase”和“Apache HBase”。
    图6 HBase增量迁移连接

  2. 选择“作业管理”的“整库迁移”页签,单击“新建作业”。
  3. 进入作业参数配置界面,作业相关信息配置完成后单击“下一步”。

    • 作业名称:用户自定义作业名称,例如hbase-increase。
    • 源端作业配置:源连接名称请选择新创建的到源端集群的连接名称,并展开高级属性配置迁移数据的时间段。
    • 目的端作业配置:目的连接名称请选择新创建的到目的端集群的连接名称,其他不填写。
    图7 HBase增量迁移作业配置

  4. 选择要迁移的数据表, 单击“下一步”,单击“保存”。
  5. 选择“作业管理”的“整库迁移”页签,在待运行作业的“操作”列单击“运行”,即可开始HBase数据增量迁移。