Hadoop 数据如何同步至 MaxCompute | 学习笔记(三)

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

开发者学堂课程【SaaS 模式云数据仓库实战Hadoop 数据如何同步至MaxCompute

 学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/761/detail/13345


Hadoop 数据如何同步至 MaxCompute


2.使用 network-measurement-tool

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

测试网络上下行传输速率

使用方法

Example

自动生成MaxCompute的DDL

3.使用meta-processor生成ODPS DDL和Hive UDTF SQL

修改globle.json,自定义表、字段的生成规则︰

生成ODPS DDL和Hive UDTF SQL了

Hive SQL语法自动检查

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

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

自动创建MaxCompute表和分区

5.使用odps_ddl_runner.py批量创建表和分区

ODPS DDL创建好以后,运行odps_ddl_runner.py,将会遍历meta-processor生成的目录,调用odpscmd自动创建ODPS表与分区∶

111.png

自动迁移数据到MaxCompute

6.使用hie_udtf_sql_runner.py迁移数据

表和分区创建完成以后,运行hive_udtf_sql_runner.py,将

数据从hive上传至MaxCompute。

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

进阶功能1:仅生成指定database或table的metadata

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

执行: sh odps-data-carrier/bin/meta-carrier -u thrift://127.0.0.1:9083 -d test -t test -o meta

112.png

可以看到,生成的metadata仅包含了test.test这张表

生成meta时,可以不生成整个数据库的meta,可以指定一个表,只生成一个表的meta

进阶功能2︰仅灵活的hive到max compute映射

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

用户可以编辑meta-carrier生成的metadata来做到上述的事情,

直接修改json文件

进阶功能3∶单表/单分区迁移

在运行hive sql进行数据迁移的时提供了两种模式: input_all模式与input_single_file模式。

在input_all模式下,给一个meta-processor生成的目录,之后odps_hive_udf_runner会自动遍历该目录下的文件,并串行执行里面的hive sql,例如︰

python3 odps-data-carrier/bin/hive_udtf_sql_runner.py --input_all processed/

在input_single_file模式下,给一个hive sql文件路径,odps_hive_udtf_runner会从该文件中读取hive sql并执行。例如∶

python3 odps-data-carrier/bin/hive_udtf_sql_runner.py --input_single_fileprocessed/test/hive_udtf_sql/single_partition/test_0.sql

input_single_file模式可以帮助熟悉工具,并且在数据量大的场景下可以控制迁移的进度。

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

(1)安装MMA Agent客户端工具:采集

Metadata&生成ODPS DDL

参照【MMAAgent操作说明】的第1、2步骤。

(2)上传Dataworks项目描述文件

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

【注意】︰一期仅支持:1)打包文件手动上传;2)支持OOIZE调度引擎的配置模板和Dataworks工作流配置模板。

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

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

是一个线下工具,基于客户端生成的meta工具要放入,根据模板生成目录,使用开源组件,可以在模板中按照相应的配置放入相应的目录下,包括工作流的脚本,使用不是开源的组件,基于标准化的模板,将工作流的数据生成,打成zip包,zip包手动上传,在后台有服务,将上传的zip包自动解析,自动加载到Dataworks工作流

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

tenantld:用户在dataworks上的租户ID;

name:用户事先在dataworks上创建好的项目空间名称;

owner:用户的阿里云账号ID。

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

 

type

DataWorks对应概念

DI

数据集成类型的节点

VIRTUAL

虚拟节点

ODPS_SQL

Max Compute SQL类型节点

通过编辑配置文件修改

其他类型作业的迁移方案

(1)UDF、MR迁移

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

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

(2)外表迁移

原则上全部迁到MaxCompute内部表。

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

【注意】︰MaxCompute外部表支持的格式包括:ORC、PARQUET、SEQUENCEFILE、RCFILE、AVRO和TEXTFILE。

将jar包上传到MaxCompute中,需要先开启2.0的支持,需要开启Hive兼容

(3)Spark作业迁移

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

【作业需要访问MaxCompute表】参考_《MaxCompute

Spark开发指南》第三节编译datasource并安装到本地maven仓库,在pom中添加依赖后重新打包即可。

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

对开源语法完全兼容,只需下载客户端

查看迁移评估报告使用MMA Agent获得评估报告

报告中将搬站风险分为两档,高风险(HIGH RISK)与中等风险(MODERATE RISK)。

高风险意味着必须人工介入,例如出现了表名冲突,ODPS完全不支持的类型等问题。

中等风险意味着迁移过程中可以自动处理,但是需要告知用户的潜在风险,例如Hive数据类型到ODPS数据类型会带来的精度损失等问题。以下是一个报告的例子。

113.png

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
184 6
|
2月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
78 2
|
15天前
|
数据采集 分布式计算 Hadoop
使用Hadoop MapReduce进行大规模数据爬取
使用Hadoop MapReduce进行大规模数据爬取
|
1月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
108 2
|
1月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
73 1
|
2月前
|
算法 大数据 数据库
云计算与大数据平台的数据库迁移与同步
本文详细介绍了云计算与大数据平台的数据库迁移与同步的核心概念、算法原理、具体操作步骤、数学模型公式、代码实例及未来发展趋势与挑战。涵盖全量与增量迁移、一致性与异步复制等内容,旨在帮助读者全面了解并应对相关技术挑战。
54 3
|
2月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
72 1
|
2月前
|
SQL 分布式计算 大数据
大数据平台的毕业设计01:Hadoop与离线分析
大数据平台的毕业设计01:Hadoop与离线分析
154 0
|
1月前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
285 7
|
1月前
|
存储 分布式计算 大数据
大数据 优化数据读取
【11月更文挑战第4天】
44 2