DataWorks提供任务搬站功能,支持将Oozie、Azkaban、Airflow等开源调度引擎的任务快速迁移至DataWorks。本文为您介绍导出任务的文件要求等相关信息。
背景信息
使用限制
导出Airflow任务仅支持Airflow 1.10.x,且依赖python 3.6及以上版本。
导出Oozie任务
导出文件的要求及结构如下:
- 导出文件的要求
导出的文件需要包含XML和配置项等信息,导出后即为一个Zip包。
- 导出文件的结构
Oozie的任务描述在HDFS的某个Path下。以Oozie官方的Examples为例,Examples包中的apps目录下,每个子目录都是一个Oozie的Workflow Job。该子目录包含Workflow的定义XML和配置项等信息。
导出Azkaban任务
Azkaban有自己的Web控制台,支持在界面下载某个工作流(Flow):
导出Airflow任务
- 导出Airflow任务步骤:
- 进入Airflow的执行环境。
- 使用Airflow的Python库,加载在Ariflow上调度的Dag Folder。Dag Folder为您的Dag Python文件所在的目录。
- 使用导出工具,在内存中通过Airflow的Python库读取Dag Python文件的内部任务信息及其依赖关系,将生成的Dag信息写入JSON文件进行导出。
您可以进入DataWorks管理控制台的调度引擎作业导出的步骤请参考进入引擎作业导出
页面,下载导出工具。进入
- 导出工具操作说明:
- 使用如下语句解压airflow-exporter.tgz。
tar zxvf airflow-exporter.tgz
- 设置PYTHONPATH为Airflow的Python lib目录。示例语句如下。
export PYTHONPATH=/usr/local/lib/python3.6/site-packages
- 导出Airflow任务。示例语句如下。
cd airflow-exporter python3.6 ./parser -d /path/to/airflow/dag/floder/ -o output.json
- 进入DataWorks迁移助手页面导入任务。
- 使用如下语句,将导出的output.json文件生成zip包。
zip out.zip output.json
- 进入DataWorks管理控制台的导入开源引擎任务。 页面,导入上述步骤生产的out.zip压缩包,导入操作详情请参见
- 使用如下语句,将导出的output.json文件生成zip包。
- 使用如下语句解压airflow-exporter.tgz。
导出其它开源引擎任务
DataWorks为您提供标准模板便于导出除Oozie、Azkaban和Airflow外的开源引擎任务。导出任务前,您需要下载标准格式模板并参考模板的文件结构修改内容。下载模板及目录结构的介绍请进入开源引擎导出页面进行查询:
- 进入数据开发页面。
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表。
- 选择工作空间所在地域后,单击相应工作空间后的数据开发。
- 单击左上方的
图标,选择 。
- 在左侧导航栏,单击调度引擎导出方案选择页面。 ,进入
- 单击标准模板。
- 在标准模板页签下,单击标准格式模板进行下载。
- 根据模板中的格式修改内容后,即可生成导出包。