Hadoop Hive数据迁移MaxCompute最佳实践

希流
  • 收获赞:135
  • 擅长领域:这个同学很专业,但是有点神秘哟~

本文为您介绍如何将Hadoop业务数据迁移至专有云MaxCompute。

方案介绍

通过DataWorks离线同步帮助客户将自建Hadoop业务数据迁移至专有云MaxCompute。

目标读者

客户数据库管理员

适用场景

客户自有Hadoop上的业务,搭建专有云后有迁移Hadoop业务到MaxCompute的需求,可能需求MaxCompute配有国密加密。

前提条件

  1. 已开通MaxCompute实例,根据需求配置国密加密。

  2. 自建hadoop hive服务正常,已待迁移数据(本文使用tpcds测试数据为例),云内网络可达。

  3. 开通DataWorks并创建工作空间。

操作步骤

步骤一:DataWorks添加Hadoop Hive数据源

DataWorks工作空间默认有MaxCompute数据源odps_first,本文使用默认数据源,所以只添加Hive数据源,如需要另外添加odps数据源可参考 配置MaxCompute数据源

  1. 进入DataWorks数据集成->数据源->数据源列表进入数据源管理页面,点击右侧新建数据源,选择大数据下面的Hive,这里由于是自建Hadoop,所以数据源类型选择连接串模式。

  2. 填写HDFS数据源的各配置项,可参考Hive数据源配置 连接串模式,检测连通性通过后点击完成。

image.png

步骤二:配置数据同步任务

  1. 进入DataWorks数据开发页面,右击业务流程 > 新建业务流程,填写业务流程名称,点击新建完成创建。image.pngimage.png

  2. 点击业务流程中数据同步测试 > 右击数据集成 > 新建 > 离线同步,填写节点名称 > 提交,完成同步任务创建。image.pngimage.png

  3. 数据来源配置,数据源选择hive > hive1(添加的数据源名称) > customer(需要同步的表),读取hive方法这里选择基于HDFS文件读取,如需过滤数据可选基于Hive JDBC读取,可配置sql where语句。image.png

  4. 数据去向配置,数据源选择odps > odps_first(或者另外添加的数据源名称),表这里如果没有提前建表可点击一键生成目标表来创建与hive表结构相同的表,如需要创建部分字段的表可预先创建表参考 新建MaxCompute表,或者使用MaxCompute命令行客户端 MaxCompute客户端(odpscmd),这里没有特殊需求,选择一键生成目标表建表。image.pngimage.png

  5. 配置字段映射关系,默认会将原表与目标源相同字段进行自动映射,有特殊需求可手动修改映射。image.png

  6. 通道配置,根据需求配置任务并发、同步速率、错误记录条数。image.png

  7. 配置同步任务资源组,点击右侧数据集成资源组配置,方案选择所需资源组,这里选择公共资源组,配置完成点击上侧保存image.pngimage.png

步骤三:运行同步任务,检查结果

  1. 点击运行开始运行同步任务,弹出自定义参数是DataWorks同步至MaxCompute默认分区参数,默认确定即可。image.png

  2. 等待运行完成,记录了日志中TOTAL:27700R,用于后续验证。image.png

  3. 检查运行结果

  4. 先创建MaxCompute数据开发节点,业务流程 > MaxCompute > 右击数据开发 > 新建 > ODPS SQL > 填写节点名称 > 提交。 image.pngimage.png

  5. 输入查询sql语句,点击保存 > 运行,验证数据同步条数与同步任务日志中TOTAL条数和hive源表中一致。image.pngimage.png