开发者学堂课程【SaaS 模式云数据仓库实战:Hadoop 数据如何同步至MaxCompute
】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/761/detail/13345
Hadoop 数据如何同步至 MaxCompute
内容介绍:
一、MMA 功能介绍、技术架构和原理
二、公有云产品形态
一、MMA 功能介绍、技术架构和原理
1.MMA 功能介绍
(1)覆盖的场景
工作负载 |
Hadoop开原生态 |
MaxCompute产品组件和生态工具 |
批处理 |
Hive SQL |
MaxCompute SQL |
MapReduce |
MaxCompute MR |
|
Apache Spark |
MaxCompute Spark |
|
存储 |
HDFS/Hive数据存储 |
MaxCompute Table,OSS |
数据集成 |
Sqoop、Kettle |
Datawroks 数据集成 |
编排&调度 |
Oozie、Airflow等作业调度工具 |
Datawroks Studio |
支持Hive SQL批量迁移MaxCompute,支持工作流的迁移
(2)主要功能
①迁移评估分析
对Hadoop平台进行诊断分析,评估数据迁移规模、作业迁移改造的数量、预估迁移后的成本,从而对迁移工作进行整体评估和决策。
②数据迁移自动化
对Hive Meta及数据进行检测扫描,自动在MaxCompute创建对应的Meta,同时根据不同的网络环境,将Hive的数据自动转换并高吞吐地加载到MaxCompute上,支持从TB级到PB级数据的迁移上云。
③作业兼容性分析
对Hive作业进行兼容性分析,识别出需要修改的任务并提供针对性的兼容性修改建议。对于用户自定义逻辑的分析任务,如UDF、MR/Spark作业等,我们将给出一般性的改造建议供用户参考。
④工作流迁移
对主流数据集成工具Sqoop进行作业的迁移转换,并自动创建Dataworks数据集成作业;支持主流Pipel ine工具,如Oozie、Azkaban、Airflow等自动迁移转化,并自动创建为Dataworks工作流及调度作业。
2.MMA 迁移服务架构
左侧是客户集群,右侧是阿云的MaxCompute服务/大数据服务,主要是Dataworks与MaxCompute。
MMA工具举行在客户的Hadoop集群上,需要在客户的服务器上,服务器需要访问Hive,机器上部署MMA工具,工具自动获取Hive meta中的数据,将数据从MySQL中读出,支持将Meta信息自动转换成MaxCompute的DDL,DDL批量在MaxCompute中创建表,批量创建表后会批量拉起同步作业,作业向Hive并发提交Hive SQL作业,调用UDF,将数据写入MaxCompute中,完成数据迁移,有作业与工作流的迁移,基于MMA客户端工具、自动发现的Meta工具,做整个工作流作业的检查,包括批量的将工作流的配置转化成Dataworks工作流的配置,直接生成Dataworks工作流,完成数据到作业到工作流的迁移,最后基于Dataworks架构对接业务系统
MMA如果支持数据与工作流整个批量迁移,是客户端加服务台共同支持
3.MMA Agent 技术架构和原理
MMA Agent的工作流程主要分为四个步骤︰
(1)Metadata抓取
(2)MaxCompute DDL与Hive UDTF生成
(3)MaxCompute表创建
(4)Hive数据迁移
有四个主要组件,第一个Meta Carrier工具,连接到Hive Meta中,自动将Meta信息拉出,生成一个Hive Meta结构,第二个为Meta Processor,Meta Processor基于Meta Carrier产出的结果,基于Hive Meta数据批量转成Meta Processor的DDL,即批量转成建表语句,包括数据类型转换,第三个ODPS Console,整个工具内置ODPS Console,基于ODPS Console,将第二步Meta Processor产出的ODPS DDL批量通过Console在MaxCompute中创建表,第四个Data Carrier,对Data Carrier批量创建HIVE UDTF SQL作业,每个HIVE UDTF SQL作业相当于多个表并行的数据同步或多个分区,以上是整个客户端实现自动Matadata获取或创建表同步数据的工作原理
二、MMA数据迁移操作演示
1.环境准备
(1)jdk 1.6+
(2)Python 3+
(3)Hive Client
(4)能访问Hive Server
(5)网络连接MaxCompute
jdk版本 1.6以上,Python版本支持Python3,运行MMA的机器具备Hive Client,需要基于Hive Client提交Hive SQL作业,能连接访问Hive Server,网络连接访问MaxCompute
场景举例:
客户IDC ->专线-> ECS+MaxCompute等,可以从ECS上访问
MaxCompute的endpoint,但从IDC不可以
客户有自己的IDC,是云下自建的Hadoop,从IDC专线访问阿里云,在阿里云有专属的ECS,在安装MMA之前,客户从ECS中直接访问MaxCompute等,但是IDC中的机器不能访问,实际需要在专线中增加VBR的路由配置,参考链接中具体的地址,通过文档进行操作
需要增加VBR路由配置:参考
https://help.aliyun.com/document detail/57195.html?spm=a2c4q.11174283.6.579.33513a79znTEsX
配置完成后打通从IDC到ECS甚至到MaxCompute服务的整个网络访问,以上都是需要在安装MMA之间预先准备的。
2.下载和编译工具包
(1)下载源码︰切换到odps-datacarrier--develop分支,https://github.com/aliyun/aliyun-maxcompute-data-collectors?spm=a2c4g.11186623.2.8.422c4c07MdjlpQ
(2)解压下载的aliyun-maxcompute-data-collectors-odps-datacarrier-develop.zip文件
(3)在控制台运行odps-data-carrier目录下的build.py文件,编译生成MMA工具
编译工具包有两种方法,一种直接提供编译完成的下载,第二章根据往往提供的地址下载源码,自行编译,有编译环境要求


