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

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

应用场景

云数据迁移(Cloud Data Migration,简称CDM),是一种高效、易用的批量数据迁移服务。 CDM围绕大数据迁移上云和智能数据湖解决方案,提供了简单易用的迁移能力和多种数据源到数据湖的集成能力,降低了客户数据源迁移和集成的复杂性,有效地提高您数据迁移和集成的效率。

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

方案架构

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

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

图1 HBase数据迁移方案

方案优势

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

迁移调研

迁移HBase数据前需要对源端HBase组件进行调研,以便评估迁移过程中可能会产生的风险、对系统的影响等。调研主要包含HBase组件版本、部署模式、数据存储、性能优化等,具体请参考表1

表1 迁移调研

调研项目

调研内容

示例

版本兼容性

源端、目标端HBase版本号。

基于Apache HBase 2.x版本。

源端、目标端HBase是否兼容标准API。

兼容标准API,支持华为云增强功能。

部署模式

源端、目标端HBase的部署模式。

自建物理/虚拟化集群、云原生服务,支持弹性扩缩容。

数据存储

源端、目标端HBase数据存储的存储方式。

本地HDFS或S3兼容存储、支持OBS(华为云对象存储),支持冷热数据分离存储。

性能优化

源端、目标端HBase性能优化策略。

  • 需手动调优Region分布、预分区策略、支持自动负载均衡。
  • 智能预分区。
  • 支持向量化查询加速。

监控与运维

源端、目标端HBase使用的监控、运维工具。

云日志服务LTS、支持自动化运维。

安全性

源端、目标端HBase使用的安全性配置。

SSL加密、Kerberos认证、VPC网络隔离、数据加密传输、细粒度ACL。

网络方案

迁移方案支持各种网络选型:公网、VPN、专线等。根据实际情况选择网络方案,两端网络互通即可迁移。

表2 网络方案

迁移网络类型

优点

缺点

专线

  • 性能稳定:时延低至毫秒级。
  • 带宽选择范围可达几十Gbit/s。
  • 数据传输安全性高。
  • 成本高:一般是包年包月。
  • 源端和目的端私网IP地址不能重叠。
  • 开通时间长:一般需提前1个月申请。

VPN

  • 组网灵活,随时搭建。
  • 稳定性较好,安全性较好。
  • 成本适中:公网费用+VPN费用。
  • 时延较高。
  • 源端和目的端私网IP地址不能重叠。

公网IP

  • 支持源端和目的端私网IP一致的情况下实施迁移。
  • 带宽任意选择(Mbit/s~Gbit/s)。
  • 即买即用,快速绑定。
  • 成本低。
  • 稳定性差:带宽可能无法全部利用,迁移速率相对较慢。
  • 公网传输数据有泄漏风险。

约束与限制

  • 本章节以通过华为云CDM服务2.9.1.200版本进行数据迁移为例介绍。不同版本操作可能有差异,具体操作详情以实际版本对应的操作指导为准。
  • CDM服务支持迁移的数据源可参考支持的数据源,数据源为Apache HBase时,建议使用的版本为2.1.X、1.3.X,请执行搬迁前务必确认是否支持搬迁。
  • 在迁移过程中,源端HBase数据如果进行删除/增量操作未能及时同步到目标集群,可能导致数据不一致,需要重新迁移。
  • 搬迁数据量较大时,对网络通信要求较高,执行搬迁任务时,可能会影响其他业务,建议在业务空闲期进行数据迁移任务。

迁移全量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]}

迁移增量HBase数据

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

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

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

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

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

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

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

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

校验HBase迁移数据

以下操作为使用MgC Agent校验迁移后的HBase数据的一致性操作示例,且都为非安全集群,以下操作以Linux版本25.3.3为例进行演示,具体以实际版本界面为准,详细操作请参见大数据校验

  1. 创建项目。

    1. 登录迁移中心管理控制台
    2. 单击左侧导航栏的“其他 > 配置管理”,进入配置管理页面。
    3. 选择“项目管理”页签,单击“创建项目”,右侧弹出创建新项目窗口。
    4. 在弹出的窗口中,选择“复杂迁移(大数据迁移)”项目类型,并设置项目名称,例如“mrs-hbase”。

      项目类型选择后将无法更改。

    5. 单击“创建”。创建项目成功,可在项目管理列表查看。

  2. 部署MgC Agent。

    1. 在导航栏左侧最上方切换新创建的项目,选择“总览 > 迁移中心Agent”下载Agent安装包。

      在Linux版区域,单击“下载安装包”或“复制下载命令”,将MgC Agent安装程序下载到Linux主机。

      本示例以在与源端和目的端网络互通的Linux主机中安装MgC Agent为例进行演示,且已准备一台用于登录MgC Agent控制台的Windows主机。部署MgC Agent的详细操作请参见部署MgC Agent(原Edge)

    2. 执行如下命令,解压MgC Agent安装包:
      tar zxvf MgC-Agent.tar.gz
    3. 执行如下命令,进入MgC Agent安装目录中的scripts目录:
      cd MgC-Agent/scripts/
    4. 执行如下命令,启动MgC Agent安装脚本:
      ./install.sh
    5. 输入Linux本机网卡的弹性公网IP地址作为后续访问MgC Agent页面的地址。

      如果输入的地址不在本机拥有的IP列表中,会提示是否开放本机所拥有的任何公网IP作为访问地址。

    6. 当出现如下图所示提示时,表示Linux版的MgC Agent已安装完成。其中提示的端口号请以实际情况为准。
      图8 安装MgC Agent成功

      执行如下命令,更新环境变量:

      source /opt/cloud/MgC-Agent/scripts/setenv.sh

      还需在安装MgC Agent的主机安全组入网规则中,需要添加一条允许通过TCP协议访问27080端口的规则。源地址填写用于登录MgC Agent控制台的Windows主机IP地址。

    7. 安装完成后,在Windows主机上打开浏览器,输入地址“https://IP地址:端口号”,即可访问MgC Agent的登录页面。例如,IP为“192.168.x.x”,端口号为“27080”,则MgC Agent的访问地址为“https://192.168.x.x:27080”。

      其中,IP为2.e输入的IP地址,端口号为2.f中MgC Agent安装成功提示的端口号。

  3. 创建连接。

    1. 登录MgC Agent。
      1. 在登录页面,登录方式选择“华为云密钥登录”。
      2. 分别输入华为云账号的AK、SK,在区域下拉列表选择在MgC服务创建项目的区域。
      3. 单击“登录”按钮,进入MgC Agent的总览页面。
    2. (仅首次登录需要配置)在总览界面,单击页面右上方的“立即连接”按钮,右侧弹出连接迁移中心页面。
      1. 在连接迁移中心页面配置以下参数:
        • 第一步:配置连接方式

          输入华为云账号的AK/SK。

        • 第二步:关联迁移中心项目

          迁移中心项目:单击“查询项目”按钮,查询成功后在下拉列表中,选择步骤 3创建的迁移项目。

        • 第三步:预设当前迁移中心Agent名称

          迁移中心Agent名称:输入自定义迁移Agent名称,例如“Agent”。

      2. 单击“连接”按钮,确认要与迁移中心进行连接,单击“确定”按钮。

        当总览页面显示状态为“已连接”,代表与MgC连接成功。

  4. 创建HBase凭证。

    1. 在左侧导航栏选择“云边协同 > 凭证列表”,进入凭证列表页面。
    2. 单击列表上方的“创建凭证”按钮,配置以下参数分别创建源端凭证和目的端凭证:
      表3 创建HBase凭证

      参数

      参数配置

      使用类型

      选择“大数据”。

      类型

      选择“HBase”。

      凭证名称

      输入自定义凭证名称,例如,源端凭证名称为“hbase-credentials”,目标端凭证名称为“hbase-target”。

      认证方式

      选择“用户名/密码”。

      用户名

      选择“root”。

      选择文件

      单击“添加文件”,上传HBase源集群或目的集群的core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml和hbase-site.xml等5个文件。

      源端集群的配置文件通常位于Hadoop安装目录的conf子目录下。目的端集群的配置文件通常位于“HBase客户端安装目录/hbase/conf”目录下。

      凭证创建后,等待凭证列表中相应凭证所在行的“同步状态”变为“已同步”。

      图9 查看凭证同步状态

  1. 选择并启用MgC Agent(仅首次使用时需要配置)。

    1. 登录迁移中心管理控制台
    2. 在左侧导航栏选择“实施 > 大数据校验”,进入大数据校验页面。
    3. 单击“选择并启用迁移中心Agent”按钮,弹出选择迁移中心Agent窗口。
    4. 在下拉列表中,选择与迁移中心连接成功的MgC Agent,单击“启用”按钮,启用该工具进行后续操作。
      图10 启用MgC Agent
    5. 单击“步骤指引”,在展开页面的“第一步:选择源端和目的端组件”中,“源端组件”选择“HBase”,“目的端组件”选择“MRS(HBase)”。
    6. 在“第二步:选择校验方式”中,根据实际需求选择校验方式,例如“全量校验”。
    7. 在“第三步:查看校验流程”的“库表分组”中单击“元数据采集”进入大数据迁移准备页面。

  2. 创建源端和目的端HBase连接。

    1. 在大数据迁移准备页面的“连接管理”页签,单击“创建连接”进入新增连接页面,“大数据组件”选择“HBase”,单击“下一步”。
    2. 在详细配置页面配置以下参数:
      表4 源端HBase连接配置

      参数

      参数配置

      所属源

      选择“源端”。

      连接名称

      默认创建名称为“HBase-4位随机数(字母和数字)”,也可以自定义名称。

      迁移中心Agent

      选择MgC Agent中已启用的Agent名称。

      HBase凭证

      选择4.a在MgC Agent添加的源端HBase凭证。

      安全集群

      选择是否部署在安全集群下,选择“否”。

      Zookeeper节点IP

      填写连接到源端Zookeeper的IP地址。通常是部署Zookeeper的服务器公网IP地址或内网IP地址。

      Zookeeper连接端口

      填写连接到源端Zookeeper的端口,默认为“2181”。

      HBase 版本

      选择源端HBase的版本。

    3. 单击“测试连接”,测试连接通过后,单击“确认”创建源端HBase连接。
    4. 再次单击“创建连接”进入新增连接页面,“大数据组件”选择“HBase”,单击“下一步”。
    5. 在详细配置页面配置以下参数:
      表5 目的端HBase连接配置

      参数

      参数配置

      所属源

      选择“目的端”。

      连接名称

      默认创建名称为“HBase-4位随机数(字母和数字)”,也可以自定义名称。

      迁移中心Agent

      选择MgC Agent中已启用的Agent名称。

      HBase凭证

      选择4.a在MgC Agent添加的目的端HBase凭证。

      安全集群

      选择是否部署在安全集群下,选择“否”。

      Zookeeper节点IP

      填写连接到目的端Zookeeper的IP地址。通常是部署Zookeeper的服务器公网IP地址或内网IP地址。

      Zookeeper连接端口

      填写连接到目的端Zookeeper的端口,默认为“2181”。

      HBase 版本

      选择目的端HBase的版本。

    6. 单击“测试连接”,测试连接通过后,单击“确认”创建目的端HBase连接。

  3. 创建并运行元数据采集任务。

    1. 在“大数据迁移准备”页面的“流程引导”区域,单击“元数据管理”中的“创建元数据采集任务”,右侧弹出“创建任务-元数据同步”页面,配置任务名称及元数据连接(即步骤 6创建的HBase源端连接),单击“确认”。
    2. 单击“元数据管理”,在任务管理列表中单击新创建的任务所在行的“运行任务”。
    3. 单击“库表清单”页签,查看采集数据表运行结果。
      图11 查看运行结果

  1. 创建表组。

    1. 在左侧导航栏选择“实施 > 大数据校验”,进入大数据校验页面。
    2. 在功能入口区域,单击“表管理”,进入表管理页面的表组页签,并确认“表管理”右侧的Agent。
    3. 单击“新增表组”,弹出新增表组窗口,配置以下参数并单击“确认”:
      • 表组名:输入自定义表组名称。
      • 元数据连接:选择步骤 6创建的源端连接。
      • 校验标准:根据实际需求选择校验标准。
    4. 选择“库表清单”页签,在列表中单击同一规则的表所在行的“加入组”,在加入组弹窗中,选择8.c新创建的表组,单击“确认”。
      图12 加入组

  2. 创建并执行校验任务。

    1. 返回大数据校验页面,在功能入口区域,单击“任务管理”,进入任务管理页面。
    2. 单击页面右上角的“新增任务”,右侧弹出新增任务窗口,“大数据组件”选择“HBase”,“统计方式”根据实际情况选择,例如选择“全量校验”,单击“下一步”。
    3. 配置以下参数并单击“保存”创建源端任务。
      表6 新增任务配置

      参数

      参数配置

      任务名

      默认创建名称为“组件类型全量校验-4位随机数(字母和数字)”,也可以自定义名称。

      表组

      选择已创建的表组名称。

      HBase连接

      选择已创建的源端HBase连接。

      OBS桶配置检查

      根据实际需求勾选“我确认仅需在迁移中心Agent侧查看日志和内容校验结果,无需上传至OBS桶”。

    4. 参考9.b~9.c创建目标端任务,其中“HBase连接”需选择已创建的目的端HBase连接。
    5. 在任务管理列表中,单击源端任务和目的端任务所在行的“执行任务”,等待任务执行结束。
      图13 执行校验任务

  3. 返回大数据校验页面,在功能入口区域,单击“校验结果”,进入校验结果页面,查看校验结果。

    还可单击操作列的“查看详情”,进入校验详情页面,查看该数据表的校验详细信息。
    图14 查看校验结果

相关文档