Hive 数据如何同步至 MaxCompute|学习笔记

本文涉及的产品
大数据开发治理平台DataWorks,Serverless资源组抵扣包300CU*H
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 快速学习 Hive 数据如何同步至 MaxCompute

开发者学堂课程【阿里云大数据计算服务 MaxCompute 使用教程:Hive 数据如何同步至 MaxCompute】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/86/detail/1329


Hive 数据如何同步至 MaxCompute


目录

一、MMA功能介绍

二、MMA的迁移服务架构

三、MMA Agent技术架构和原理

四、环境准备

五、下载和编译工具包

六、MMA Agent操作说明

七、进阶功能

八、使用Dataworks自动迁移数据和工作流

九、其他类型作业的迁移方案

 

一、MMA功能介绍

(一)覆盖的主要场景

(二)主要功能

1、迁移评估分析

对 Hadoop 平台进行诊断分析,评估数据迁移规模、作业迁移改造的数量、预估迁移后的成本,从而对迁移工作进行整体评估和决策。

2、数据迁移自动化

对 Hive Meta 及数据进行检测扫描,自动在 MaxCompute 创建对应的 Meta,同时根据不同的网络环境,将 Hive 的数据自动转换并高吞吐地加载到 MaxCompute 上,支持从 TB 级到 PB 级数据的迁移上云。

3、作业兼容性分析

对 Hive 作业进行兼容性分析,识别出需要修改的任务并提供针对性的兼容性修改建议。对于用户自定义逻辑的分析任务,如 UDF、 MR/Spark 作业等,我们将给出一般性的改造建议供用户参考。

4、工作流迁移

对主流数据集成工具 Sqoop 进行作业的迁移转换,并自动创建 Dataworks 数据集成作业:支持主流 Pipeline 工具,如 Oozie、 Azkaban. Airflow 等自动迁移转化,并自动创建为 Dataworks 工作流及调度作业。

 

二、MMA的迁移服务架构

图片20.png


三、MMA Agent 技术架构和原理

1、MMA Agent 的工作流程主要分为四个步骤:

(1)Metadata 抓取

(2)MaxCompute DDL与 Hive UDTF 生成

(3)MaxCompute 表创建

(4)Hive 数据迁移

 

四、环境准备

1、jdk 1.6+

2、Python 3+

3、Hive Client

4、能访问 Hive Server

5、能连接网络 MaxCompute

6、场景举例

 

五、下载和编译工具包

1、下载源码:

切换到 odps-datacarier-develop 分支,

htp:/qihubp.com/alivun/alivun-maxcompute-data-collectors?spm=a2c4g.1186623.2.8.422c4c07MdjlpQ

2、解压下载的

aliyun-maxcompute-data-collectors-odps-datacarrier-develop.zip 文件

3、在控制台运行 odps-data-carrier 目录下的 build.py 文件,编译生成 MMA 工具

 

六、MMA Agent 操作说明

(一)Hive Metadata 自动采集

1、使用meta-carrier 采集 Hive Metadata

(1)解压工具包:odps-data-carrier.zip,工具目录结构

(2)获取Hive Metadata

(3)结果Hive Metadata 输出的目录结构

(4)说明

①global.json 是一个全局的配置文件,包含了整个迁移过程中的一些配置

②每一个 database 会有一个独立的目录

③每一个表有一个以表名命名的 json 文件

④如果是分区表,还会有一个以表名为命名的 partition 的 json 文件

(二)网络连通性检测

1、使用 network-measurement tool

(1)测试 Hadoop 集群到 MaxCompute 各 Region 的网络连通质量

(2)测试网络 上下行传输速率

2、使用方法

3、举例

(三)自动生成MaxCompute的DDL

1、使用 meta-processor 生成 ODPS DDL  和 Hive UDTF SQL

(1)修改 globle.json,自定义表、字段的生成规则:

(2)生成 ODPS DDL 和 Hive UDTF SQL 了,用法及结果如下

(四)Hive SQL 语法自动检查

1、使用 sql-checker 检查 Hive SQL 是否可以直接在 MaxCompute 执行

(1)输出 SQL 是否存在语法错误及修改建议:

(五)自动创建 MaxCompute 表和分区

1、使用 odps_ _ddl_ runner py 批量创建表和分区

(1)ODPS DDL 创建好以后,运行 odps_ ddl_ runner.py,将会遍历 meta processor 生成的目录,调用 odpscmd 自动创建 ODPS 表与分区:

(六)自动迁移数据到 MaxCompute

1、使用 hive_ _udtf_ _sql runner.py 迁移数据

(1)表和分区创建完成以后,运行 hive_ udtf. _sql runner.py, 将数据从 hive,上传至 MaxCompute。

(2)hive_udtf_sql_runner.py 有 两种模式,第一种将会遍历 meta-processor 生成的目录,调用 hive client 运行 hive udtf sql,从而将数据从 hive 上传至 ODPS。 第二种模式需要用户手动指定一个 hive sq| 文件。


七、进阶功能

1、仅生成指定 database 或 table 的 metadata

(1)在前面的 Demo 中,我们抓去了 hive 中所有 database 和表的 metadata,但在很多环境下,我们倾向于一次处理一个 database 或一张表,因此 meta-carrier 工具提供了抓取指定 database 或 table 的 metadata 的能力:

这里我们生成的 metadata 仅包含了 test.test 这张表

2、仅灵活的 hive 到 max compute 映射

(1)在前面的 Demo 中,我们将 hive 的 test.test 表 映射到 mc 中 ODPS_ DATA_ CARRIER. _TEST.test 这张表,然而,我们提供了更强大的能力,比如说修改 hive 表 到 mc 的表明与列名映射,设置 mc 中表的 life cycle,增加 comment, 等等。

 

八、使用 Dataworks 自动迁移数据和工作流

1、安装 MMA Agent 客户端工具:采集 Metadata& 生成 ODPS DDL

(1)参照 [MMA Agent 操作说明]的第 1、2步骤

2、上传 Dataworks 项目描述文件

(1)根据模板(参见右图)生成 DataWorks 项目描述文档,打包为 dataworks_ project.tgz 上传到 Dataworks.

(2)注意:一期仅支持:

打包文件手动上传:

支持 00IZE 调度引擎的配置模板和 Dataworks 工作流配置模板。

(3)上传完成后,Dataworks 服务会根据 ODPS DDL 批量生成 MaxCompute 的table。

(4)MaxCompute 的表创建完成后,Dataworks 服务会自动拉起 DataX 的数据同步任务,完成批量数据迁移。

3、项目描述文件(/project.xml)说明

4、工作流描述文件(/workflow.xml)说明

 

九、其他类型作业的迁移方案

1、UDF、MR 迁移

(1)支持相同逻辑的 UDF、MR 输入、输出参数的映射转换,但 UDF 和 MR 内部逻辑需要客户自己维护。

[注意]:不支持在 UDF、MR 中直接访问文件系统、网络访问、外部数据源连接。

2、外表迁移

(1)原则上全部迁到 MaxCompute 内部表。

(2)如果必须通过外表访问外部文件,建议先将文件迁移到 OSS 或者 OTS, 在MaxCompute 中 创建外部表,实现对文件的访问。

[注意] : MaxCompute 外部表支持的格式包括:

ORC、PARQUET、SEQUENCEFILE、RCFILE、AVRO和TEXTFILE.

3、Spark 作业迁移

(1) [作业无需访问 MaxCompute 表和 OSS ]用户 jar 包可直接运行,参照_《MaxCompute Spark 开发指南》第二节准备开发环境和修改配置。注意,对于spark 或 hadoop 的依赖必须设成 provided.

(2) [作业需要访问 MaxCompute 表]参考《MaxComputeSpark 开发指南》第三节编译 datasource 并安装到本地 maven仓库,在 pom 中添加依赖后重新打包即可。

(3) [作业需要访问 OSS] 参考《MaxCompute Spark 开发指南》第四节在 pom 中添加依赖后重新打包即可。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
544 7
|
2月前
|
存储 分布式计算 大数据
大数据 优化数据读取
【11月更文挑战第4天】
67 2
|
12天前
|
分布式计算 Shell MaxCompute
odps测试表及大量数据构建测试
odps测试表及大量数据构建测试
|
2月前
|
机器学习/深度学习 存储 大数据
在大数据时代,高维数据处理成为难题,主成分分析(PCA)作为一种有效的数据降维技术,通过线性变换将数据投影到新的坐标系
在大数据时代,高维数据处理成为难题,主成分分析(PCA)作为一种有效的数据降维技术,通过线性变换将数据投影到新的坐标系,保留最大方差信息,实现数据压缩、去噪及可视化。本文详解PCA原理、步骤及其Python实现,探讨其在图像压缩、特征提取等领域的应用,并指出使用时的注意事项,旨在帮助读者掌握这一强大工具。
124 4
|
2月前
|
存储 大数据 数据管理
大数据分区简化数据维护
大数据分区简化数据维护
34 4
|
2月前
|
存储 大数据 定位技术
大数据 数据索引技术
【10月更文挑战第26天】
76 3
|
2月前
|
存储 大数据 OLAP
大数据数据分区技术
【10月更文挑战第26天】
102 2
|
3月前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势
|
2月前
|
数据采集 监控 数据管理
数据治理之道:大数据平台的搭建与数据质量管理
【10月更文挑战第26天】随着信息技术的发展,数据成为企业核心资源。本文探讨大数据平台的搭建与数据质量管理,包括选择合适架构、数据处理与分析能力、数据质量标准与监控机制、数据清洗与校验及元数据管理,为企业数据治理提供参考。
114 1
|
3月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
63 3

热门文章

最新文章