Hive 数据如何同步至 MaxCompute
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的搬迁服务架构
三、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 中增加依靠后从头打包即可。
我有话说: