Airflow集成在线编写创建dag的插件

全栈工程师开发手册 (作者:栾鹏)
架构系列文章

注意:该插件目前只适用于Python2,对于Python3的环境不适合。

集成DAG生成插件

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

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

封装docker镜像时将文件打包到AIRFLOW_HOME目录的plugins目录

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

pip uninstall flask-login
pip install flask-login:0.2.11

部署使用

在部署k8s或者docker应用时,修改配置文件airflow.cfg,在最后添加如下配置

[dag_creation_manager]
# DEFAULT: basis
dag_creation_manager_line_interpolate = basis 
# Choices for queue and pool  使用的池
dag_creation_manager_queue_pool = mydefault:mydefault|mydefault 
# MR queue for queue pool  使用的队列
dag_creation_manager_queue_pool_mr_queue = mydefault:mydefault
# Category for display
dag_creation_manager_category = custom
# Task category for display
dag_creation_manager_task_category = custom_task:#ffba40
# Your email address to receive email
# DEFAULT: 
dag_creation_manager_default_email = xxx@qq.com
dag_creation_manager_need_approver = False
dag_creation_manager_can_approve_self = True
# 地址
dag_creation_manager_dag_templates_dir = /usr/local/airflow/plugins/dcmp/dag_templates

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

authenticate = True
auth_backend = dcmp.auth.backends.password_auth

第一次执行时需要先升级一下现有的airflow数据库

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

这样就可以打开web界面来使用ui界面编写管理dag了

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用介绍

在这里插入图片描述
3
在这里插入图片描述
下拉到底部,填写DAG相关配置,此处配置每分钟执行一次
在这里插入图片描述
在这里插入图片描述
在下方填写该TASK的名称及脚本类型与脚本代码等信息,此处脚本内容为向/tmp/airflow.dat文件定时输入“*************************”:
在这里插入图片描述
再点击“ADD TASK”,将会在上面的“task1”节点后添加一个task,此处的规则是要在哪个task后添加一个任务,先点击该task,再点击“ADD TASK”:
在这里插入图片描述
再添加一个与task1同级的task,向/tmp/airflow.log定期输出当前时间:
在这里插入图片描述
修改依赖,将task1和task3都作为task2的依赖:先点击task2,点击Change Upstream,选择task3
在这里插入图片描述
在这里插入图片描述
回到主界面之后,该DAG不会马上被识别出来,默认情况下Airflow是5分钟扫描一次dag目录,该配置可在airflow.cfg中修改。

识别出来之后打开主界面,点击“暂停按钮”取消暂停开始执行:
在这里插入图片描述

参考:https://cloud.tencent.com/developer/article/1424491

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Airflow是一个基于Python的开源工作流调度和任务编排平台,它使用DAG(有向无环图)来定义任务之间的依赖关系。通过Airflow,您可以轻松地创建、调度和监控复杂的工作流。 以下是使用Airflow创建和调度DAG图的示例代码: 1. 安装Airflow: ```shell pip install apache-airflow ``` 2. 创建DAG图文件(例如,my_dag.py): ```python from datetime import datetime from airflow import DAG from airflow.operators.python_operator import PythonOperator def task1(): # 任务1的代码 def task2(): # 任务2的代码 # 创建DAGdag = DAG('my_dag', description='DAG图调度示例', schedule_interval='0 0 * * *', start_date=datetime(2022, 1, 1)) # 定义任务1和任务2 task_1 = PythonOperator(task_id='task_1', python_callable=task1, dag=dag) task_2 = PythonOperator(task_id='task_2', python_callable=task2, dag=dag) # 定义任务之间的依赖关系 task_1 >> task_2 ``` 3. 启动Airflow调度程序: ```shell airflow scheduler ``` 4. 启动Airflow Web服务器: ```shell airflow webserver -p 8080 ``` 5. 在浏览器中访问`http://localhost:8080`,您将看到AirflowWeb界面。 在Web界面中,您可以查看已定义的DAG图、运行任务、监控任务状态等。Airflow提供了丰富的功能,如任务调度、任务重试、任务监控、动态调整工作流等。 这只是一个简单的示例,您可以根据自己的需求和任务定义更复杂的DAG图。Airflow提供了更多的操作符和功能,如BashOperator、PythonOperator、BranchPythonOperator等,以及丰富的插件生态系统。 希望这些信息能帮助您开始使用Airflow进行DAG图调度!如有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腾讯数据架构师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值