DataWorks搬站方案:Airflow作业迁移至DataWorks
DataWorks提供任务搬站功能,支持将开源调度引擎Oozie、Azkaban、Airflow的任务快速迁移至DataWorks。本文主要介绍如何将开源Airflow工作流调度引擎中的作业迁移至DataWorks上。
支持迁移的Airflow版本
Airflow支持迁移的版本:python >= 3.6.x airfow >=1.10.x
整体迁移流程
迁移助手支持开源工作流调度引擎到DataWorks体系的大数据开发任务迁移的基本流程如下图示。
针对不同的开源调度引擎,DataWorks迁移助手会出一个相关的任务导出方案。
整体迁移流程为:通过迁移助手调度引擎作业导出能力,将开源调度引擎中的作业导出;再将作业导出包上传至迁移助手中,通过任务类型映射,将映射后的作业导入至DataWorks中。作业导入时可设置将任务转换为MaxCompute类型作业、EMR类型作业、CDH类型作业等。
Airflow作业导出
导出原理介绍:在用户的Airflow的执行环境里面,利用Airflow的Python库加载用户在Ariflow上调度的dag folder(用户自己的dag python文件所在目录)。导出工具在内存中通过Airflow的Python库去读取dag的内部任务信息及其依赖关系,将生成的dag信息通过写入json文件导出。
具体的执行命令可进入迁移助手->任务上云->调度引擎作业导出->Airflow页面中查看。
Airflow作业导入
拿到了开源调度引擎的导出任务包后,用户可以拿这个zip包到迁移助手的迁移助手->任务上云->调度引擎作业导入页面上传导入包进行包分析。
导入包分析成功后点击确认,进入导入任务设置页面,页面中会展示分析出来的调度任务信息。
开源调度导入设置
用户可以点击高级设置,设置Airflow任务与DataWorks任务的转换关系。不同的开源调度引擎,在高级设置里面的设置界面基本一致如下。
高级设置项介绍:
- sparkt-submit转换为:导入过程会去分析用户的任务是不是sparkt-submit任务,如果是的话,会将spark-submit任务转换为对应的DataWorks任务类型,比如说:ODPS_SPARK/EMR_SPARK/CDH_SPARK等
- 命令行 SQL任务转换为:开源引擎很多任务类型是命令行运行SQL,比如说hive -e, beeline -e, impala-shell等等,迁移助手会根据用户选择的目标类型做对应的转换。比如可以转换成ODPS_SQL, EMR_HIVE, EMR_IMPALA, EMR_PRESTO, CDH_HIVE, CDH_PRESTO, CDH_IMPALA等等
- 目标计算引擎类型:这个主要是影响的是Sqoop同步的目的端的数据写入配置。我们会默认将sqoop命令转换为数据集成任务。计算引擎类型决定了数据集成任务的目的端数据源使用哪个计算引擎的project。
- Shell类型转换为:SHELL类型的节点在Dataworks根据不同计算引擎会有很多种,比如EMR_SHELL,CDH_SHELL,DataWorks自己的Shell节点等等。
- 未知任务转换为:对目前迁移助手无法处理的任务,我们默认用一个任务类型去对应,用户可以选择SHELL或者虚节点VIRTUAL
- SQL节点转换为:DataWorks上的SQL节点类型也因为绑定的计算引擎的不同也有很多种。比如 EMR_HIVE,EMR_IMPALA、EMR_PRESTO,CDH_HIVE,CDH_IMPALA,CDH_PRESTO,ODPS_SQL,EMR_SPARK_SQL,CDH_SPARK_SQL等,用户可以选择转换为哪种任务类型。
注意:这些导入映射的转换值是动态变化的,和当前项目空间绑定的计算引擎有关,转换关系如下。
导入至DataWorks + MaxCompute
设置项 |
可选值 |
sparkt-submit转换为 |
ODPS_SPARK |
命令行 SQL任务转换为 |
ODPS_SQL、ODPS_SPARK_SQL |
目标计算引擎类型 |
ODPS |
Shell类型转换为 |
DIDE_SHELL |
未知任务转换为 |
DIDE_SHELL、VIRTUAL |
SQL节点转换为 |
ODPS_SQL、ODPS_SPARK_SQL |
导入至DataWorks + EMR
设置项 |
可选值 |
sparkt-submit转换为 |
EMR_SPARK |
命令行 SQL任务转换为 |
EMR_HIVE, EMR_IMPALA, EMR_PRESTO, EMR_SPARK_SQL |
目标计算引擎类型 |
EMR |
Shell类型转换为 |
DIDE_SHELL, EMR_SHELL |
未知任务转换为 |
DIDE_SHELL、VIRTUAL |
SQL节点转换为 |
EMR_HIVE, EMR_IMPALA, EMR_PRESTO, EMR_SPARK_SQL |
导入至DataWorks + CDH
设置项 |
可选值 |
sparkt-submit转换为 |
CDH_SPARK |
命令行 SQL任务转换为 |
CDH_HIVE, CDH_IMPALA, CDH_PRESTO, CDH_SPARK_SQL |
目标计算引擎类型 |
CDH |
Shell类型转换为 |
DIDE_SHELL |
未知任务转换为 |
DIDE_SHELL、VIRTUAL |
SQL节点转换为 |
CDH_HIVE, CDH_IMPALA, CDH_PRESTO, CDH_SPARK_SQL |
执行导入
设置完映射关系后,点击开始导入即可。导入完成后,请进入数据开发中查看导入结果。
数据迁移
大数据集群上的数据迁移,可参考:DataWorks数据集成或MMA。
本文为阿里云原创内容,未经允许不得转载。
DataWorks搬站方案:Airflow作业迁移至DataWorks的更多相关文章
- 《Scrum实战》第3次课【富有成效的每日站会】作业汇总
1组 崔儒: http://kecyru.blog.163.com/blog/static/2741661732017626101944123/ 2017-07-26 孟帅: http://www.c ...
- BlueHost主机建站方案怎样选择?
BlueHost是知名美国主机商,近年来BlueHost不断加强中国市场客户的用户体验,提供多种主机租用方案,基本能够满足各类网站建设需求.下面就和大家介绍一下建站应该怎样选择主机. 1.中小型网站 ...
- 软件工程-东北师大站-第十次作业(PSP)
1.本周PSP 2.本周进度条 3.本周累计进度图 代码累计折线图 博文字数累计折线图 4.本周PSP饼状图
- 软件工程-东北师大站-第九次作业(PSP)
1.本周PSP 2.本周进度条 3.本周累计进度图 代码累计折线图 博文字数累计折线图 4.本周PSP饼状图
- 软件工程-东北师大站-第二次作业psp
1.本周PSP 2.本周进度条 3.本周累计进度图 代码累计折线图 博文字数累计折线图 本周PSP饼状图
- PHPCMS快速建站系列之网站迁移(本地到服务器,服务器迁移,更换域名等)
可能出现的问题: 1.后台登录验证码显示不正常(修改/caches/configs/system.php文件) //网站路径'web_path' => '/', 2.phpsso修改 如果不修改 ...
- 不同场景下 MySQL 的迁移方案
一 目录 一 目录 二 为什么要迁移 三 MySQL 迁移方案概览 四 MySQL 迁移实战 4.1 场景一 一主一从结构迁移从库 4.2 场景二 一主一从结构迁移指定库 4.3 场景三 一主一从结构 ...
- 开源WebGIS实施方案(六):空间数据(PostGIS)与GeoServer服务迁移
研发环境的变更,或者研发完成进行项目现场实施.运维的时候,经常就会面临数据及服务的迁移,这其中就包含空间数据以及GeoServer服务的迁移工作. 这里需要提醒的是:如果采用的是类似的开源WebGIS ...
- Linux下快速迁移海量文件的操作记录
有这么一种迁移海量文件的运维场景:由于现有网站服务器配置不够,需要做网站迁移(就是迁移到另一台高配置服务器上跑着),站点目录下有海量的小文件,大概100G左右,图片文件居多.目测直接拷贝过去的话,要好 ...
- 【转】GPS连续运行单参考站解决方案
GPS连续运行单参考站解决方案 一. 前言 随着国家信息化程度的提高及计算机网络和通信技术的飞速发展,电子政务.电子商务.数字城市.数字省区和数字地球的工程化和现实化,需要采集多种实时地理 空间 ...
随机推荐
- [置顶]
spring巧用继承解决bean的id相同的问题
先感叹一下:最近的项目真的很奇葩!!! 需求是这样的:我们的项目中引用了两个jar包,这两个jar包是其他项目组提供的,不能修改! 奇葩的是:这两个jar中都需要引用方提供一个相同id的bean,而b ...
- NJUPT自控第一次积分赛的小总结(一)题目感受
快开学了事情真的好多啊 -_- 忙完积分赛就赶紧要去复习期末了...线代还是依托答辩啥都不懂 先看题目吧,RT,我们队(我)选择的是第一题(仅仅是因为很简单罢啦) 一开始看题目,心想不就调调pid吗, ...
- 记录--H5 视频兼容性处理总结
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 概述 最近在负责公司官网的开发,在 H5 播放视频时,遇到很多兼容问题,所以总结下在 H5 播放时,遇到的兼容性问题,并封装一个 Vide ...
- 网站https 问题记录
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 开发过程中 常见的 https 问题 - 避坑 做前端多年,发现有些问题需要重复解决很多次,浪费了不少时间,https 导致的问题就属于其 ...
- Spring Boot框架中针对数据文件模板的下载总结
1.前言 在我们的日常开发中,经常会碰到注入导入Excel数据到系统中的需求,而在导入Excel数据时,一般的业务系统都会提供数据的Excel模板,只有提交的Excel数据满足业务系统要求的模板时,数 ...
- .NET分布式Orleans - 4 - 计时器和提醒
Timer是什么 Timer 是一种用于创建定期粒度行为的机制. 与标准的 .NET System.Threading.Timer 类相似,Orleans 的 Timer 允许在一段时间后执行特定的操 ...
- mysql统计所有分类下的数量,没有的也要展示
要求统计所有分类下的数量,如果分类下没有对应的数据也要展示.这种问题在日常的开发中很常见,每次写每次忘,所以在此记录下. 这种统计往往不能直接group by,因为有些类别可能没有对应的数据 这里有两 ...
- sklearn数据集使用(鸢尾花)
1 2 from sklearn.datasets import load_iris 3 4 """ 5 sklearn数据集使用 6 :return: 7 " ...
- ET介绍——为什么使用C# .net core做服务端?
为什么使用C# .net core做服务端? 游戏服务端从早期的单服到分布式,开发越来越复杂,对稳定性,开发效率要求越来越高.开发语言的选择也逐步发生了变化,C 到 C++ 到 C++ + PYTHO ...
- set集合的TreeSet类
TreeSet 类 TreeSet类是Set接口的一个实现类,主要作用是用于对对象的排序以及确定存入对象的唯一性. 它的底层是红黑树,用来确保元素的排序和唯一性的,基于map对象,TreeSet是对T ...