python生成dat文件_0613Airflow集成自动生成DAG插件

作者:李继武

1

文档编写目的

Airflow的DAG是通过python脚本来定义的,原生的Airflow无法通过UI界面来编辑DAG文件,这里介绍一个插件,通过该插件可在UI界面上通过拖放的方式设计工作流,最后自动生成DAG定义文件。

  • 内容概述

1. Airflow插件集成

2. 使用介绍

3. 总结

  • 安装环境

1. RedHat7.4

2. Python2.7

3. Airflow1.10.1

2

集成DAG生成插件

1. 在github上下载该插件并上传到服务器上并解压,github地址为:

//github.com/lattebank/airflow-dag-creation-manager-plugin

d385adb20608ff7cec1c5d191413cb29.png

2. 在AIRFLOW_HOME目录下创建plugins目录,复制插件文件到该目录下,执行以下命令:

mkdir -p /opt/airflow/plugins
cp -r airflow-dag-creation-manager-plugin-master/plugins/* /opt/airflow/plugins/

3. 修改配置文件airflow.cfg,在最后添加如下配置

[dag_creation_manager]

f636aa62b19fb553844b99d96f6fe505.png

4. 关闭Airflow

pkill airflow

5. 因为该插件还集成了安全认证,但使用的flask-login模块与当前的airflow自动下载的模块版本不匹配,先卸载原来的flask-login

pip uninstall flask-login

上传Flask-Login-0.2.11.tar.gz并解压

3ba4036d7d27a786d87bead4105ff29e.png

安装

cd 

75cc95b181db4f73f8440c05e1d231e2.png

该插件启用之后,许多功能会被屏蔽掉,此处不开启,如果需要开启在Airflow.cfg中的[webserver]配置:

authenticate = 

6. 执行如下命令更新数据库

python /opt/airflow/plugins/dcmp/tools/upgradedb.py

7. 启动airflow

8. 该插件生成的DAG都需要指定一个POOL来执行任务,根据我们在DAG中配置的POOL来创建POOL:

41fc72d8ba63b758ef39d11d2b61c85c.png

打开UI界面,选择“Admin”下的“Pools”

27848a9a502659fff672e008308fafef.png

选择“create”进行创建:

a9588b3230bcf026d73684b9f70d0900.png

eb99441e6326ede7dabebf8e3b0778f0.png

3

使用介绍

1. 创建DAG,选择“Admin”下的“DAG Creation Manager”

b7afa2265756cccd305f10871e5bb032.png

2. 点击“Create”

df4676eddd931b99a64474b26fca1355.png

3. 出现如下界面

0a71bcbf2560db7a4e01b5a43ace2d97.png

4. 下拉到底部,填写DAG相关配置,此处配置每分钟执行一次

6b5a1a6a61ad975acfa7dbc9d1171784.png

5. 在DAG图中,选择添加“ADD TASK”,来添加一个节点

40745ffcccd0d4fb88c1ef6dca90e224.png

6. 在下方填写该TASK的名称及脚本类型与脚本代码等信息,此处脚本内容为向/tmp/airflow.dat文件定时输入“*************************”:

4c9d3d777e311f4e8ab9bbdeec613b99.png

7. 再点击“ADD TASK”,将会在上面的“task1”节点后添加一个task,此处的规则是要在哪个task后添加一个任务,先点击该task,再点击“ADD  TASK”:

第二个TASK设为定期向上面的文件/tmp/airflow.dat中输入当前时间:

b507c968ced4ac09ab3cb7120feedb8e.png

8. 再添加一个与task1同级的task,向/tmp/airflow.log定期输出当前时间:

01807ae152edac5f537d5b60db1ce3e2.png

9. 修改依赖,将task1和task3都作为task2的依赖:先点击task2,点击Change Upstream,选择task3。

a2a4630cf01926b5cd640c52045b1673.png

10. 点击保存

7d3e20234dbeee71b8f2f68b0b306e5c.png

11. 回到主界面之后,该DAG不会马上被识别出来,默认情况下Airflow是5分钟扫描一次dag目录,该配置可在airflow.cfg中修改。

识别出来之后打开主界面,点击“暂停按钮”取消暂停开始执行:

2908c8f4fa9201a0bde6d8c8e9946bbd.png

启动之后airflow仍会将之前积压的批次执行,终端上查看这两个文件

b34adce86ac7c2fe3a026155b27c93c9.png

8fc8f8e4467e723628d42eba38bfd06e.png

4

总结

1. 该插件目前只适用于Python2,对于Python3的环境不适合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值