Hive 数据如何同步至 MaxCompute

作者阿里云代理 文章分类 分类:linux图文教程 阅读次数 已被围观 653

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 中增加依靠后从头打包即可。

本公司销售:阿里云、腾讯云、百度云、天翼云、金山大米云、金山企业云盘!可签订合同,开具发票。

我有话说: