摘要:MaxCompute大数据计算服务,能提供快速、完全托管的PB级数据仓库解决方案,能够使用户经济且高效地分析处理海量数据。而用户往往之前使用了Hadoop实现大数据计算任务,在选择了阿里云大数据计算服务之后,如何从Hadoop向MaxCompute进行迁移就成为了一个需要面对的问题了。在本文中,阿里云数据技术专家结网就为大家分享了从Hadoop迁移到MaxCompute的理论与实践。
直播视频回看, 传送门!
分享资料下载, 传送门!
更多精彩内容传送门: 大数据计算技术共享计划 — MaxCompute技术公开课第二季
通常而言,将Hadoop迁移到MaxCompute会分为两个主要部分:数据迁移和任务迁移。首先,对于数据迁移而言,可以通过Datax、数据集成以及DataxOnHadoop这几种工具实现。Datax是阿里云开源的一款数据传输工具;而数据集成的底层就是由Datax实现的。如果在数据迁移的过程中要使用Datax,那么需要用户来自定义调度,这对于gateway资源具有一定的要求。Datax在做数据传输的时候需要有一个管道机,通常就称之为gateway,数据的传输都是通过这个gateway来实现的,因此在使用Datax的时候对于gateway的资源是具有一定的要求的。此外,数据集成是在DataWorks里面集成化的数据传输工具。如果想要应用数据集成,那么其调度就是在DataWorks里面完成的,设置完数据周期等一些属性,DataWorks就可以自动实现任务的调度。如果使用数据集成,在网络允许的情况下,可以使用DataWorks的gateway公共网络资源,如果网络不允许则可以使用自定义的调度资源。
除此之外,还有一些因素会影响我们在进行数据迁移时做出方案的选择,分别是网络、数据量和迁移周期。对于网络而言,通常分为这样的几种类型,混合云VPC,也就是客户本地机房与阿里云打通在一个VPC里面,还有客户本地机房,一般而言客户的本地机房会有一部分主机具有公网IP,这时候在进行数据迁移的时候就倾向于使用Datax,这是因为客户的集群没有办法直接与MaxCompute打通,还可能使用数据集成,通过使用自定义调度资源来完成这个事情。此外,还有一种情况就是客户集群位于阿里云上,对于经典网络集群,可以通过数据集成直接将数据迁移过来;而对于VPC网络而言,数据集成可能无法直接深入VPC内部,这时候也需要自定义调度资源。当然对于VPC集群而言,也可以DataxOnHadoop,每个节点正常情况下会与MaxCompute的Tunnel可以打通。对于混合云VPC而言,其选项会比多,数据集成以及DataxOnHadoop都可以使用。而对于数据量而言,可以和迁移周期综合起来考虑,线下机房需要迁移的数据有多大以及要求的工期有多长也会影响我们选择的数据迁移方式,并且对于需要准备的网络带宽等资源也是有影响的。
Datax
从总体上而言,Datax改变了一种模式,就是数据的导入和导出,比如MySQL到Oracle或者MySQL到ODPS都是单点的,每一种导入和导出都会有单独的工具作为支持。而Datax就实现了各种插件,无论是各个数据库之间如何导入导出,都是通过Datax的gateway实现中转的,首先到Datax,然后再到ODPS,这样就从原来的网状模式变成了星型模式。
除了数据迁移之外,还需要关注任务迁移。这部分也分为两部分,一部分是任务本身的迁移,另外一部分是调度平台的迁移。对于任务本身的迁移而言,比如原来使用的Hive SQL,想要迁移到MaxCompute的SQL,这样在迁移的匹配上可能会有一些迁移的工作量。原来在Hive上定义的UDF,写的MaxCompute程序或者Spark任务这些也都需要进行迁移。除此之外,还有一类就是调度平台的迁移,原来的Hive SQL以及MaxCompute程序是通过某些调度工作进行周期性的任务运行,当迁移到MaxCompute之后,这些任务也需要进行相应的迁移。这里列举了两类,一类是迁移之后裸用MaxCompute,就相当于还作为原来的Hive来使用或者还是使用命令行或者API的方式做调用,此时原来的调度系统基本上不用变化,只需要将原来对Hive的接口改为对MaxCompute的接口就可以了。还有一类就是在迁移之后需要通过DataWorks进行调用,这个时候任务迁移的工作量就会大一些,首先需要将原来的任务迁移到DataWorks里面去,其次还要将原来的调度属性也配置到DataWorks里面去。
“HDFS到MaxCompute的数据迁移流程”的具体实操内容演示请见视频内容。 视频传送门
直播视频回看, 传送门!
分享资料下载, 传送门!
更多精彩内容传送门: 大数据计算技术共享计划 — MaxCompute技术公开课第二季
以下内容根据演讲视频以及PPT整理而成。
通常而言,将Hadoop迁移到MaxCompute会分为两个主要部分:数据迁移和任务迁移。首先,对于数据迁移而言,可以通过Datax、数据集成以及DataxOnHadoop这几种工具实现。Datax是阿里云开源的一款数据传输工具;而数据集成的底层就是由Datax实现的。如果在数据迁移的过程中要使用Datax,那么需要用户来自定义调度,这对于gateway资源具有一定的要求。Datax在做数据传输的时候需要有一个管道机,通常就称之为gateway,数据的传输都是通过这个gateway来实现的,因此在使用Datax的时候对于gateway的资源是具有一定的要求的。此外,数据集成是在DataWorks里面集成化的数据传输工具。如果想要应用数据集成,那么其调度就是在DataWorks里面完成的,设置完数据周期等一些属性,DataWorks就可以自动实现任务的调度。如果使用数据集成,在网络允许的情况下,可以使用DataWorks的gateway公共网络资源,如果网络不允许则可以使用自定义的调度资源。
除此之外,还有一些因素会影响我们在进行数据迁移时做出方案的选择,分别是网络、数据量和迁移周期。对于网络而言,通常分为这样的几种类型,混合云VPC,也就是客户本地机房与阿里云打通在一个VPC里面,还有客户本地机房,一般而言客户的本地机房会有一部分主机具有公网IP,这时候在进行数据迁移的时候就倾向于使用Datax,这是因为客户的集群没有办法直接与MaxCompute打通,还可能使用数据集成,通过使用自定义调度资源来完成这个事情。此外,还有一种情况就是客户集群位于阿里云上,对于经典网络集群,可以通过数据集成直接将数据迁移过来;而对于VPC网络而言,数据集成可能无法直接深入VPC内部,这时候也需要自定义调度资源。当然对于VPC集群而言,也可以DataxOnHadoop,每个节点正常情况下会与MaxCompute的Tunnel可以打通。对于混合云VPC而言,其选项会比多,数据集成以及DataxOnHadoop都可以使用。而对于数据量而言,可以和迁移周期综合起来考虑,线下机房需要迁移的数据有多大以及要求的工期有多长也会影响我们选择的数据迁移方式,并且对于需要准备的网络带宽等资源也是有影响的。
Datax
从总体上而言,Datax改变了一种模式,就是数据的导入和导出,比如MySQL到Oracle或者MySQL到ODPS都是单点的,每一种导入和导出都会有单独的工具作为支持。而Datax就实现了各种插件,无论是各个数据库之间如何导入导出,都是通过Datax的gateway实现中转的,首先到Datax,然后再到ODPS,这样就从原来的网状模式变成了星型模式。
除了数据迁移之外,还需要关注任务迁移。这部分也分为两部分,一部分是任务本身的迁移,另外一部分是调度平台的迁移。对于任务本身的迁移而言,比如原来使用的Hive SQL,想要迁移到MaxCompute的SQL,这样在迁移的匹配上可能会有一些迁移的工作量。原来在Hive上定义的UDF,写的MaxCompute程序或者Spark任务这些也都需要进行迁移。除此之外,还有一类就是调度平台的迁移,原来的Hive SQL以及MaxCompute程序是通过某些调度工作进行周期性的任务运行,当迁移到MaxCompute之后,这些任务也需要进行相应的迁移。这里列举了两类,一类是迁移之后裸用MaxCompute,就相当于还作为原来的Hive来使用或者还是使用命令行或者API的方式做调用,此时原来的调度系统基本上不用变化,只需要将原来对Hive的接口改为对MaxCompute的接口就可以了。还有一类就是在迁移之后需要通过DataWorks进行调用,这个时候任务迁移的工作量就会大一些,首先需要将原来的任务迁移到DataWorks里面去,其次还要将原来的调度属性也配置到DataWorks里面去。
“HDFS到MaxCompute的数据迁移流程”的具体实操内容演示请见视频内容。 视频传送门