使用CDM服务迁移Hive数据至MRS集群
应用场景
云数据迁移(Cloud Data Migration,简称CDM),是一种高效、易用的批量数据迁移服务。 CDM围绕大数据迁移上云和智能数据湖解决方案,提供了简单易用的迁移能力和多种数据源到数据湖的集成能力,降低了客户数据源迁移和集成的复杂性,有效地提高您数据迁移和集成的效率。
Hive可使用CDM实现数据的全量迁移和增量迁移。对于全量迁移,CDM支持文件迁移方式,通过高效批量迁移实现数据的抽取和写入。CDM的数据迁移基于分布式计算框架,通过高效批量迁移的方式,实现数据在源端和目标端之间的自由流动。
本章节以通过华为云CDM服务进行数据迁移为例介绍,将线下IDC机房或者公有云Hive集群中的数据(支持数据量在几十TB级别或以下的数据量级)全量迁移到华为云MRS集群。
方案架构
Hive数据迁移分两部分内容:
- Hive的元数据信息,存储在MySQL等数据库中。MRS Hive集群的元数据会默认存储到MRS DBService组件,也可以选择RDS(MySQL)作为外置元数据库。
- Hive的业务数据,存储在HDFS文件系统或OBS对象存储中。
方案优势
场景化迁移通过迁移快照数据然后再恢复表数据的方法,能大大提升迁移效率。
迁移调研
迁移Hive数据前需要对源端Hive组件进行调研,以便评估迁移过程中可能会产生的风险、对系统的影响等。调研主要包含Hive组件版本、迁移数据量、库表清单、任务数量等,具体请参考表1。
调研项目 |
调研内容 |
示例 |
---|---|---|
版本兼容性 |
Hive版本号。 |
3.1.1 |
数据量 |
Hive需要迁移的总数据量。 |
总数据量:单节点10TB |
库表清单 |
统计需要迁移的Hive表个数,及分区表个数,表的最大数据规模的分布情况(即xxx个表是GB以内,xxx个表是TB以内,最大表是xxxTB),及最大分区数量(单表的分区数量不能太大,需在数万以内)。 |
总共有3DB Hive表,每DB包含3000张表,10%表有分区。 最大表100TB,普通表约20GB,表最大分区数量为1000。 |
任务数量 |
需统计每天Hive处理的任务数量,及提交任务的最大并数。 |
每天Hive处理1W个任务,每个任务约2~3个SQL语句,每个SQL语句关联2~3个表,最大并发任务数为10个。 |
权限 |
|
|
提交方式 |
Hive提交任务的方式。例如使用hive命令或beeline命令提交任务。 |
使用beeline命令提交任务。 |
自定义函数(UDF) |
是否使用了UDF自定义函数,如果使用了,需统计UDF函数的个数及类型。 |
共使用了20个UDF自定义函数,包含UDF、UDTF、UDAF三种类型。 |
网络方案
迁移方案支持各种网络选型:公网、VPN、专线等。根据实际情况选择网络方案,保证源端Hive和目的端MRS集群分别都与CDM集群和Mgc Agent网络互通,即可迁移数据并进行数据校验。
迁移网络类型 |
优点 |
缺点 |
---|---|---|
专线 |
|
|
VPN |
|
|
公网IP |
|
|
约束与限制
- 本章节以通过华为云CDM服务2.9.1.200版本进行数据迁移为例介绍,不同版本操作可能有差异,具体操作详情以实际版本对应的操作指导为准。
- CDM服务支持迁移的数据源可参考支持的数据源,数据源为Apache Hive时,不支持2.x版本,建议使用的版本为1.2.X、3.1.X,请执行搬迁前务必确认是否支持搬迁。
- 搬迁数据量较大时,对网络通信要求较高,执行搬迁任务时,可能会影响其他业务,建议在业务空闲期进行数据迁移任务。
- 在迁移过程中,更改源端Hive表数据后未能及时同步到目标集群,可能导致数据不一致。可以使用校验工具识别不一致数据,进行重迁或者补数。
- CDM无法迁移数据的属性,例如owner、ACL、checksum等信息,详见CDM数据迁移约束与限制。
迁移Hive数据
- 登录CDM管理控制台。
- 创建CDM集群,该CDM集群的安全组、虚拟私有云、子网需要和迁移目的端集群保持一致,保证CDM集群和MRS集群之间网络互通。
- 在“集群管理”页面单击待操作集群对应“操作”列的“作业管理”。
- 在“连接管理”页签,单击“新建连接”。
- 参考CDM服务的新建连接页面,分别添加到迁移源端集群和迁移目的端集群的连接。
连接类型根据实际集群来选择,如果是MRS集群,连接器类型可以选择“MRS Hive”,如果是自建集群可以选择“Apache Hive”。
图2 创建Hive连接 - 在迁移目的端集群中创建数据迁移后的存储数据库。
- 选择“作业管理”的“表/文件迁移”页签,单击“新建作业”。
- 进入作业参数配置界面,配置作业名称,并分别为源连接和目的连接选择5中创建的对应数据连接并选择要迁移的数据库和表名,单击“下一步”。更多作业参数介绍请参见新建表/文件迁移作业。
图3 Hive作业配置
- 配置源字段和目的字段的映射关系, 并单击“下一步”。
- 进入任务配置页面,不做修改,直接单击“保存”。
- 选择“作业管理”的“表/文件迁移”页签,在待运行作业的“操作”列单击“运行”,即可开始Hive数据迁移。
- 迁移完成后,可以在目的端集群和源端集群的Hive Beeline命令行中,通过同样的查询语句,对比查询结果进行验证。
例如在目的端集群和源端集群上通过查询catalog_sales表的记录数来确认数据条数是否一致。
select count(*) from catalog_sales;图4 源端集群数据记录图5 目的端集群数据记录 - (可选)如果源端集群中有新增数据需要定期将新增数据迁移至目的端集群,则根据数据新增方式进行不同方式的迁移。配置定期任务增量迁移数据,直到所有业务迁移至目的端集群。
- Hive表数据修改、未新增删除表、未修改已有表的数据结构:此时Hive表已经创建好,仅需迁移Hive存储在HDFS或OBS上的文件即可,请参考使用CDM服务迁移Hadoop数据至MRS集群页面新增数据迁移方式进行数据迁移。
- Hive表有新增:请选择“作业管理”的“表/文件迁移”页签,在Hive迁移作业的“操作”列单击“编辑”,选择新增的数据表进行数据迁移。
- Hive表有删除或已有表的数据结构有修改:请在目的端集群中手动删除对应表或手动更新变更的表结构。
校验Hive迁移数据
以下操作为使用MgC Agent校验迁移后的Hive数据的一致性操作示例,以Linux版本25.3.3为例进行演示,具体以实际版本界面为准,详细操作请参见大数据校验。
- 分别创建两个Linux系统和一个Windows系统的弹性云服务器,对应ECS的安全组、虚拟私有云、子网需要和迁移目的端MRS集群保持一致,具体操作请参见自定义购买ECS。
后续操作中,MRS集群客户端和Mgc Agent需分别安装在不同的ECS节点上。
- 安装MRS集群客户端。
在新创建的其中一个Linux主机上安装MRS集群客户端,具体操作请参见安装客户端(3.x版本)。
- 创建Mgc项目。
- 登录迁移中心管理控制台。
- 单击左侧导航栏的“其他 > 配置管理”,进入配置管理页面。
- 选择“项目管理”页签,单击“创建项目”,右侧弹出创建新项目窗口。
- 在弹出的窗口中,选择“复杂迁移(大数据迁移)”项目类型,并设置项目名称,例如“mrs-hive”。
项目类型选择后将无法更改。
- 单击“创建”。创建项目成功,可在项目管理列表查看。
- 在新创建的另一个Linux主机上部署MgC Agent并创建连接,部署MgC Agent的详细操作请参见部署MgC Agent(原Edge)。
- 在导航栏左侧最上方切换新创建的项目,选择“总览 > 迁移中心Agent”下载Agent安装包。
- 执行如下命令,解压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已安装完成。其中提示的端口号请以实际情况为准。
图6 安装MgC Agent成功
执行如下命令,更新环境变量:
source /opt/cloud/MgC-Agent/scripts/setenv.sh
还需在安装MgC Agent的主机安全组入网规则中,需要添加一条允许通过TCP协议访问27080端口的规则。源地址填写用于登录MgC Agent控制台的Windows主机IP地址。
- 安装完成后,在1创建的Windows主机上打开浏览器,输入地址“https://IP地址:端口号”,即可访问MgC Agent的登录页面。例如,IP为“192.168.x.x”,端口号为“27080”,则MgC Agent的访问地址为“https://192.168.x.x:27080”。
- 登录MgC Agent。
- 在登录页面,登录方式选择“华为云密钥登录”。
- 分别输入华为云账号的AK、SK,在区域下拉列表选择在MgC服务创建项目的区域。
- 单击“登录”按钮,进入MgC Agent的总览页面。
- (仅首次登录需要配置)在总览界面,单击页面右上方的“立即连接”按钮,右侧弹出连接迁移中心页面。
- 在连接迁移中心页面配置以下参数:
- 第一步:配置连接方式
- 第二步:关联迁移中心项目
迁移中心项目:单击“查询项目”按钮,查询成功后在下拉列表中,选择3创建的迁移项目。
- 第三步:预设当前迁移中心Agent名称
- 单击“连接”按钮,确认要与迁移中心进行连接,单击“确定”按钮。
- 在连接迁移中心页面配置以下参数:
- 添加执行机凭证。
- 在左侧导航栏选择“云边协同 > 凭证列表”,进入凭证列表页面。
- 单击列表上方的“创建凭证”按钮,配置以下参数创建源端凭证和目的端凭证:
表3 创建Hive凭证 参数
参数配置
使用类型
选择“大数据”。
类型
选择“执行机”。
凭证名称
输入自定义凭证名称,例如,源端凭证名称为“source_executor”,目标端凭证名称为“target_executor”。
认证方式
选择“用户名/密码”。
用户名
输入连接源端Hive客户端或目的端MRS集群客户端节点的用户名,例如“hive_user”。
密码
输入用户密码。
凭证创建后,等待凭证列表中相应凭证所在行的“同步状态”变为“已同步”。
- 选择并启用MgC Agent(仅首次使用时需要配置)。
- 创建Hive MetaStore源端连接。
- 在大数据校验页面的“功能入口”区域单击“大数据迁移准备”进入大数据迁移准备页面。
- 在“连接管理”页签,单击“创建连接”进入新增连接页面,“大数据组件”选择“Hive MetaStore”,单击“下一步”。
- 在详细配置页面配置以下参数,参数具体配置说明请参见创建源端组件连接中的“Hive Metastore连接参数配置说明”内容:
表4 源端Hive连接配置 参数
参数配置
所属源
选择“源端”。
连接名称
默认创建名称为“Hive-Metastore-4位随机数(字母和数字)”,也可以自定义名称。
迁移中心Agent
选择MgC Agent中已启用的Agent名称。
启用安全连接
根据实际需求启用安全连接,例如,不勾选“启用安全连接”。
Hive版本
选择源端Hive集群版本。
MetaStore节点IP
填写连接MetaStore的IP地址。
MetaStore Thrift服务端口
填写连接MetaStore的端口,默认为9083。
- 单击“测试连接”,测试连接通过后,单击“确认”创建源端Hive MetaStore连接。
- 创建并运行元数据同步任务。
- 在大数据迁移准备页面,单击“元数据管理”,在“任务管理”页签单击“创建元数据同步任务”,右侧弹出“创建任务-元数据同步”页面,配置以下参数,并单击“确认”:
- 任务名称:数据自定义任务名称。
- 元数据连接:选择7创建的Hive MetaStore源端连接。
- 数据库(可选):数据待校验的数据库名称,例如“bigdata_test”。
- 在任务列表中单击新创建的任务所在行的“运行任务”运行元数据同步任务。
- 任务运行完成后,单击任务所在行的“查看实例”查看任务实例列表。
- 单击“库表清单”页签,查看同步的表清单。
- 在大数据迁移准备页面,单击“元数据管理”,在“任务管理”页签单击“创建元数据同步任务”,右侧弹出“创建任务-元数据同步”页面,配置以下参数,并单击“确认”:
- 创建并加入表组。
- 在左侧导航栏选择“实施 > 大数据校验”,在“功能入口”区域单击“表管理”进入表管理页面。
- 在“表组”页面,单击“新增表组”,弹出新增表组窗口,配置以下参数并单击“确认”:
- 表组名:输入自定义表组名称,例如“hive”。
- 元数据连接:选择7创建的Hive MetaStore源端连接。
- 校验标准:根据实际需求选择校验标准。
- 选择“库表清单”页签,将待校验的表添加到9.b已创建的表组中。
在库表清单列表中勾选待校验的表,选择“表组管理 > 批量加入组”,弹出批量加入组页面,选择9.b创建的表组,单击“确认”。
- 加入成功后,可在库表清单列表中查看对应表的“表组名”,即为加入的表组名,例如“hive”。
- 创建执行机连接。
- 在导航栏选择“实施 > 大数据迁移准备”进入大数据迁移准备页面。
- 在“连接管理”页签,单击“创建连接”进入新增连接页面,“执行机”选择“CDH执行机”,单击“下一步”。
- 在详细配置页面配置以下参数:
表5 源端Hive连接配置 参数
参数配置
所属源
选择“源端”。
连接名称
自定义连接名称,例如“CDH执行机-source”。
迁移中心Agent
选择MgC Agent中已启用的Agent名称。
执行机凭证
选择5创建的源端执行机凭证。
执行机IP
填写源端Hive客户端所在主机的IP地址。
可在该主机上使用hive、beeline或spark-sql命令连接到源端Hive。
执行机连接端口
填写连接源端Hive客户端的所在主机的端口号。
安装目录
填写源端Hive客户端所在目录。
SQL文件地址
手动创建用于存放SQL文件的目录。
- 单击“测试连接”,测试连接通过后,单击“确认”创建源端连接。
- 再次单击“创建连接”进入新增连接页面,“执行机”选择“MRS执行机”,单击“下一步”。
- 在详细配置页面配置以下参数:
- 单击“测试连接”,测试连接通过后,单击“确认”创建目的端连接。
- 可在连接列表中查看已创建的源端和目的端连接。
- 创建并运行校验任务。
- 查看校验任务运行情况。
- 单击“实例列表”页签,查看校验任务运行情况。
- 在实例列表中,选择校验任务所在行的“更多 > 查看校验结果”进入校验结果页面,查看校验结果。
- 还可单击操作列的“查看详情”,进入校验详情页面,查看该数据表的校验详细信息。