使用CDM服务迁移Hive数据至MRS集群
应用场景
本章节适用于将线下IDC机房或者公有云Hive集群中的数据(支持数据量在几十TB级别或以下的数据量级)迁移到华为云MRS服务。
使用华为云CDM服务“场景迁移功能”可以一键式便捷地完成Hive数据的迁移。
本章节以通过华为云CDM服务 2.9.1.200版本进行数据迁移为例介绍。不同版本操作可能有差异,具体操作详情以实际版本对应的操作指导为准。
CDM服务支持迁移的数据源可参考支持的数据源,数据源为Apache Hive时,不支持2.x版本,建议使用的版本为1.2.X、3.1.X,请执行搬迁前务必确认是否支持搬迁。
方案架构
Hive数据迁移分两部分内容:
- Hive的元数据信息,存储在MySQL等数据库中。MRS Hive集群的元数据会默认存储到MRS DBService组件,也可以选择RDS(MySQL)作为外置元数据库。
- Hive的业务数据,存储在HDFS文件系统或OBS对象存储中。
方案优势
场景化迁移通过迁移快照数据然后再恢复表数据的方法,能大大提升迁移效率。
约束与限制
搬迁数据量较大时,对网络通信要求较高,执行搬迁任务时,可能会影响其他业务,建议在业务空闲期进行数据迁移任务。
迁移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表有删除或已有表的数据结构有修改:请在目的端集群中手动删除对应表或手动更新变更的表结构。