使用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官网相关内容。

方案优势
场景化迁移通过迁移快照数据然后再恢复表数据的方法,能大幅度提升迁移效率。
迁移调研
迁移HBase数据前需要对源端HBase组件进行调研,以便评估迁移过程中可能会产生的风险、对系统的影响等。调研主要包含HBase组件版本、部署模式、数据存储、性能优化等,具体请参考表1。
调研项目 |
调研内容 |
示例 |
---|---|---|
版本兼容性 |
源端、目标端HBase版本号。 |
基于Apache HBase 2.x版本。 |
源端、目标端HBase是否兼容标准API。 |
兼容标准API,支持华为云增强功能。 |
|
部署模式 |
源端、目标端HBase的部署模式。 |
自建物理/虚拟化集群、云原生服务,支持弹性扩缩容。 |
数据存储 |
源端、目标端HBase数据存储的存储方式。 |
本地HDFS或S3兼容存储、支持OBS(华为云对象存储),支持冷热数据分离存储。 |
性能优化 |
源端、目标端HBase性能优化策略。 |
|
监控与运维 |
源端、目标端HBase使用的监控、运维工具。 |
云日志服务LTS、支持自动化运维。 |
安全性 |
源端、目标端HBase使用的安全性配置。 |
SSL加密、Kerberos认证、VPC网络隔离、数据加密传输、细粒度ACL。 |
网络方案
迁移方案支持各种网络选型:公网、VPN、专线等。根据实际情况选择网络方案,两端网络互通即可迁移。
迁移网络类型 |
优点 |
缺点 |
---|---|---|
专线 |
|
|
VPN |
|
|
公网IP |
|
|
约束与限制
迁移全量HBase数据
- 登录CDM管理控制台。
- 创建CDM集群,该CDM集群的安全组、虚拟私有云、子网需要和迁移目的端集群保持一致,保证CDM集群和待迁移的MRS集群之间网络互通。
- 在“集群管理”页面单击待操作集群对应“操作”列的“作业管理”。
- 在“连接管理”页签,单击“新建连接”。
- 参考CDM服务的新建连接页面,添加到迁移源端集群的连接,连接器类型根据实际集群来选择,例如连接器类型选择“Apache HBase”。
(可选)HBase迁移建议使用高权限用户,单击“显示高级属性”,新增迁移所需用户“hadoop.user.name = 用户名(如omm用户)”。
图2 到迁移源端集群的连接 - 在“连接管理”页签,单击“新建连接”。
- 参考CDM服务的新建连接页面,添加到迁移目的端集群的连接,连接器类型根据实际集群来选择,例如连接器类型选择“MRS HBase”。
(可选)HBase迁移建议使用高权限用户,单击“显示高级属性”,新增迁移所需用户“hadoop.user.name = 用户名(如omm用户)”。
图3 到迁移目的端集群的连接 - 选择“作业管理”的“表/文件迁移”页签,单击“新建作业”。
- 进入作业参数配置界面,配置作业名称、源端作业和目的端作业参数,并选择要迁移的数据表,单击“下一步”。
图4 HBase作业配置
- 配置源字段和目的字段的映射关系, 并单击“下一步”。
- 进入任务配置页面,不做修改,直接单击“保存”。
- 选择“作业管理”的“表/文件迁移”页签,在待运行作业的“操作”列单击“运行”,在弹出的运行作业页面,单击“确定”即可开始HBase数据迁移。
- 迁移完成后,可以在目的端集群和源端集群的HBase Shell命令行中,通过同样的查询语句,对比查询结果进行验证。
例如:
- 在目的端集群和源端集群上通过查询BTable表的记录数来确认数据条数是否一致,可添加“--endtime”参数排除迁移期间源端集群上有数据更新的影响。
hbase org.apache.hadoop.hbase.mapreduce.RowCounter BTable --endtime=1587973835000
图5 查询BTable表的记录数 - 可执行以下命令查询指定时间段内的数据进行对比。
scan 'BTable ', {TIMERANGE=>[1587973235000, 1587973835000]}
- 在目的端集群和源端集群上通过查询BTable表的记录数来确认数据条数是否一致,可添加“--endtime”参数排除迁移期间源端集群上有数据更新的影响。
迁移增量HBase数据
在业务割接前,如果源端集群上有新增数据,需要定期将新增数据搬迁到目的端集群。一般每天更新的数据量在GB级别可以使用CDM的“整库迁移”指定时间段的方式进行HBase新增数据迁移。
当前使用CDM的“整库迁移”功能时的限制:如果源HBase集群中被删除操作的数据无法同步到目的端集群上。
场景迁移的HBase连接器不能与“整库迁移”共用,因此需要单独配置“HBase”连接器。
- 参考迁移全量HBase数据的步骤 1~步骤 7步骤新增两个“HBase”连接器,连接器类型根据实际集群来选择。
例如选择连接器类型时分别为源端集群和目的端集群选择“MRS HBase”和“Apache HBase”。图6 HBase增量迁移连接
- 选择“作业管理”的“整库迁移”页签,单击“新建作业”。
- 进入作业参数配置界面,作业相关信息配置完成后单击“下一步”。
- 作业名称:用户自定义作业名称,例如hbase-increase。
- 源端作业配置:源连接名称请选择新创建的到源端集群的连接名称,并展开高级属性配置迁移数据的时间段。
- 目的端作业配置:目的连接名称请选择新创建的到目的端集群的连接名称,其他不填写。
图7 HBase增量迁移作业配置 - 选择要迁移的数据表, 单击“下一步”,单击“保存”。
- 选择“作业管理”的“整库迁移”页签,在待运行作业的“操作”列单击“运行”,在弹出的运行作业页面,单击“确定”即可开始HBase数据增量迁移。
校验HBase迁移数据
以下操作为使用MgC Agent校验迁移后的HBase数据的一致性操作示例,且都为非安全集群,以下操作以Linux版本25.3.3为例进行演示,具体以实际版本界面为准,详细操作请参见大数据校验。
- 创建项目。
- 登录迁移中心管理控制台。
- 单击左侧导航栏的“其他 > 配置管理”,进入配置管理页面。
- 选择“项目管理”页签,单击“创建项目”,右侧弹出创建新项目窗口。
- 在弹出的窗口中,选择“复杂迁移(大数据迁移)”项目类型,并设置项目名称,例如“mrs-hbase”。
项目类型选择后将无法更改。
- 单击“创建”。创建项目成功,可在项目管理列表查看。
- 部署MgC Agent。
- 在导航栏左侧最上方切换新创建的项目,选择“总览 > 迁移中心Agent”下载Agent安装包。
在Linux版区域,单击“下载安装包”或“复制下载命令”,将MgC Agent安装程序下载到Linux主机。
本示例以在与源端和目的端网络互通的Linux主机中安装MgC Agent为例进行演示,且已准备一台用于登录MgC Agent控制台的Windows主机。部署MgC Agent的详细操作请参见部署MgC Agent(原Edge)。
- 执行如下命令,解压MgC Agent安装包:
tar zxvf MgC-Agent.tar.gz
- 执行如下命令,进入MgC Agent安装目录中的scripts目录:
cd MgC-Agent/scripts/
- 执行如下命令,启动MgC Agent安装脚本:
./install.sh
- 输入Linux本机网卡的弹性公网IP地址作为后续访问MgC Agent页面的地址。
- 当出现如下图所示提示时,表示Linux版的MgC Agent已安装完成。其中提示的端口号请以实际情况为准。
图8 安装MgC Agent成功
执行如下命令,更新环境变量:
source /opt/cloud/MgC-Agent/scripts/setenv.sh
还需在安装MgC Agent的主机安全组入网规则中,需要添加一条允许通过TCP协议访问27080端口的规则。源地址填写用于登录MgC Agent控制台的Windows主机IP地址。
- 安装完成后,在Windows主机上打开浏览器,输入地址“https://IP地址:端口号”,即可访问MgC Agent的登录页面。例如,IP为“192.168.x.x”,端口号为“27080”,则MgC Agent的访问地址为“https://192.168.x.x:27080”。
- 在导航栏左侧最上方切换新创建的项目,选择“总览 > 迁移中心Agent”下载Agent安装包。
- 创建连接。
- 登录MgC Agent。
- 在登录页面,登录方式选择“华为云密钥登录”。
- 分别输入华为云账号的AK、SK,在区域下拉列表选择在MgC服务创建项目的区域。
- 单击“登录”按钮,进入MgC Agent的总览页面。
- (仅首次登录需要配置)在总览界面,单击页面右上方的“立即连接”按钮,右侧弹出连接迁移中心页面。
- 在连接迁移中心页面配置以下参数:
- 第一步:配置连接方式
- 第二步:关联迁移中心项目
迁移中心项目:单击“查询项目”按钮,查询成功后在下拉列表中,选择步骤 3创建的迁移项目。
- 第三步:预设当前迁移中心Agent名称
- 单击“连接”按钮,确认要与迁移中心进行连接,单击“确定”按钮。
- 在连接迁移中心页面配置以下参数:
- 登录MgC Agent。
- 创建HBase凭证。
- 在左侧导航栏选择“云边协同 > 凭证列表”,进入凭证列表页面。
- 单击列表上方的“创建凭证”按钮,配置以下参数分别创建源端凭证和目的端凭证:
表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 查看凭证同步状态
- 选择并启用MgC Agent(仅首次使用时需要配置)。
- 登录迁移中心管理控制台。
- 在左侧导航栏选择“实施 > 大数据校验”,进入大数据校验页面。
- 单击“选择并启用迁移中心Agent”按钮,弹出选择迁移中心Agent窗口。
- 在下拉列表中,选择与迁移中心连接成功的MgC Agent,单击“启用”按钮,启用该工具进行后续操作。
图10 启用MgC Agent
- 单击“步骤指引”,在展开页面的“第一步:选择源端和目的端组件”中,“源端组件”选择“HBase”,“目的端组件”选择“MRS(HBase)”。
- 在“第二步:选择校验方式”中,根据实际需求选择校验方式,例如“全量校验”。
- 在“第三步:查看校验流程”的“库表分组”中单击“元数据采集”进入大数据迁移准备页面。
- 创建源端和目的端HBase连接。
- 在大数据迁移准备页面的“连接管理”页签,单击“创建连接”进入新增连接页面,“大数据组件”选择“HBase”,单击“下一步”。
- 在详细配置页面配置以下参数:
表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的版本。
- 单击“测试连接”,测试连接通过后,单击“确认”创建源端HBase连接。
- 再次单击“创建连接”进入新增连接页面,“大数据组件”选择“HBase”,单击“下一步”。
- 在详细配置页面配置以下参数:
表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的版本。
- 单击“测试连接”,测试连接通过后,单击“确认”创建目的端HBase连接。
- 创建并运行元数据采集任务。
- 在“大数据迁移准备”页面的“流程引导”区域,单击“元数据管理”中的“创建元数据采集任务”,右侧弹出“创建任务-元数据同步”页面,配置任务名称及元数据连接(即步骤 6创建的HBase源端连接),单击“确认”。
- 单击“元数据管理”,在任务管理列表中单击新创建的任务所在行的“运行任务”。
- 单击“库表清单”页签,查看采集数据表运行结果。
图11 查看运行结果
- 创建表组。
- 创建并执行校验任务。
- 返回大数据校验页面,在功能入口区域,单击“任务管理”,进入任务管理页面。
- 单击页面右上角的“新增任务”,右侧弹出新增任务窗口,“大数据组件”选择“HBase”,“统计方式”根据实际情况选择,例如选择“全量校验”,单击“下一步”。
- 配置以下参数并单击“保存”创建源端任务。
表6 新增任务配置 参数
参数配置
任务名
默认创建名称为“组件类型全量校验-4位随机数(字母和数字)”,也可以自定义名称。
表组
选择已创建的表组名称。
HBase连接
选择已创建的源端HBase连接。
OBS桶配置检查
根据实际需求勾选“我确认仅需在迁移中心Agent侧查看日志和内容校验结果,无需上传至OBS桶”。
- 参考9.b~9.c创建目标端任务,其中“HBase连接”需选择已创建的目的端HBase连接。
- 在任务管理列表中,单击源端任务和目的端任务所在行的“执行任务”,等待任务执行结束。
图13 执行校验任务
- 返回大数据校验页面,在功能入口区域,单击“校验结果”,进入校验结果页面,查看校验结果。
还可单击操作列的“查看详情”,进入校验详情页面,查看该数据表的校验详细信息。图14 查看校验结果