【Airflow】工作流自动化和调度系统

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 2014年,Airbnb创造了一套工作流调度系统:Airflow。Airflow是灵活可扩展的工作流自动化和调度系统 。2019年成为Apache的顶级项目。它可以让程序员通过编程实现:编写、调度、监控工作流,主要针对有大量数据进行传递的场景,不适合解决流式任务(如spark streaming和Flink)。

一、Airflow的诞生

image.png

2014年,Airbnb创造了一套工作流调度系统:Airflow。Airflow是灵活可扩展的工作流自动化和调度系统 。2019年成为Apache的顶级项目。它可以让程序员通过编程实现:编写、调度、监控工作流,主要针对有大量数据进行传递的场景,不适合解决流式任务(如spark streaming和Flink)。

通过python代码,把任务组织成有向无环图DAG,

通过【依赖关系】在一组服务器上调度任务。

Airflow有啥用:

监控自动化工作的情况(通过web UI和各个worker上记录的执行历史)

自动处理并传输数据

为机器学习或推荐系统提供一个数据管道和使用框架

二、基于CeleryExecutor方式的系统架构

使用celery方式的系统架构图(官方推荐使用这种方式,同时支持mesos方式部署)。turing为外部系统,GDags服务帮助拼接成dag,可以忽略。

master节点webui管理dags、日志等信息。scheduler负责调度,只支持单节点,多节点启动scheduler可能会挂掉

worker负责执行具体dag中的task。这样不同的task可以在不同的环境中执行。

image.png

turing为外部系统

GDags服务帮助拼接成dag

master节点webui管理dags、日志等信息

scheduler负责调度,只支持单节点

worker负责执行具体dag中的task, worker支持多节点

三、Airflow的组成成分

Worker:用来处理和执行整个工作流的各个节点的工作任务的东西。

Scheduler:只有干活的worker是不够的,Airflow需要有一个大脑,去检查哪些任务执行了,哪些任务没有执行,以及应该在什么时间执行任务。

WebServer:Airflow是可以用视窗工具(UI)来完成工作流修改,参数修改这些任务的。这个视窗工具就是一个web页面(简单理解就是在浏览器里面打开的网页)。这个WebServer启动之后,我们就可以更方便的去修改和检测我们的工作流了。

中止、恢复、触发任务。

监控正在运行的任务,断点续跑任务。

执行 ad-hoc 命令或 SQL 语句来查询任务的状态,日志等详细信息。

配置连接,包括不限于数据库、ssh 的连接等。

四、安装

(1)安装包

yum install python-devel mysql-devel -y
yum install python-devel
yum install python3-devel
yum install mysql-devel
pip3 install mysqlclient
pip3 install apache-airflow
pip3 install apache-airflow[mysql]

(2)修改配置文件

# 初始化原始库 执行完以下命令后会在当前家用户目录下生成airflow目录
airflow db init
# vim airflow.cfg
具体要修改的内容如下
[core]
executor=LocalExecutor
sql_alchemy_conn = mysql://user:password@IP:3306/airflow
[smtp]
smtp_host = mail.ndpmedia.com
smtp_starttls = True
smtp_ssl = False
smtp_user = user
smtp_password = pass
smtp_port = 25
smtp_timeout = 30
smtp_mail_from =与user相同
smtp_retry_limit = 5
[webserver]
security = Flask AppBuilder
secure_mode = True
rbac=True

(3)创建用户

airflow users create --username admin --firstname admin --lastname admin --role Admin --email  example@XX.com
airflow webserver 启动web服务
airflow scheduler  启动调度程序

五、基本命令

$ airflow webserver -D     守护进程运行webserver
$ airflow scheduler -D     守护进程运行调度器
$ airflow worker -D        守护进程运行调度器
$ airflow worker -c 1 -D   守护进程运行celery worker并指定任务并发数为1
$ airflow pause dag_id     暂停任务
$ airflow unpause dag_id   取消暂停,等同于在管理界面打开off按钮
$ airflow list_tasks dag_id  查看task列表
$ airflow clear dag_id       清空任务实例
$ airflow trigger_dag dag_id -r RUN_ID -e EXEC_DATE  运行整个dag文件
$ airflow run dag_id task_id execution_date       运行task
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
14
分享
相关文章
企业数字化转型的关键:如何利用OA系统实现自动化与智能决策
在数字化时代,传统办公系统已无法满足现代企业的需求。通过将RPA(机器人流程自动化)和AI(人工智能)技术与OA系统结合,企业能实现业务流程自动化、智能决策支持,大幅提升工作效率和资源配置优化,推动数字化转型。RPA可自动处理重复任务,如审批、数据同步等;AI则提供智能数据分析、预测和决策支持,两者协同作用,助力财务管理、人力资源管理、项目管理和客户服务等多个领域实现智能化升级。未来,智能化OA系统将进一步提升个性化服务、数据安全和协作能力,成为企业发展的关键驱动力。
利用Apipost轻松实现用户充值系统的API自动化测试
API在现代软件开发中扮演着连接不同系统与模块的关键角色,其测试的重要性日益凸显。传统API测试面临效率低、覆盖率不足及难以融入自动化工作流等问题。Apipost提供了一站式API自动化测试解决方案,支持零代码拖拽编排、全场景覆盖,并可无缝集成CI/CD流程。通过可视化界面,研发与测试人员可基于同一数据源协作,大幅提升效率。同时,Apipost支持动态数据提取、性能压测等功能,满足复杂测试需求。文档还以用户充值系统为例,详细介绍了从创建测试用例到生成报告的全流程,帮助用户快速上手并提升测试质量。
OWL:告别繁琐任务!开源多智能体系统实现自动化协作,效率提升10倍
OWL 是基于 CAMEL-AI 框架开发的多智能体协作系统,通过智能体之间的动态交互实现高效的任务自动化,支持角色分配、任务分解和记忆功能,适用于代码生成、文档撰写、数据分析等多种场景。
923 13
OWL:告别繁琐任务!开源多智能体系统实现自动化协作,效率提升10倍
智能调度:自动化运维的"最强大脑"进化论
智能调度:自动化运维的"最强大脑"进化论
171 15
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
本文介绍如何设置和查看域名或证书监控。步骤1:根据证书状态选择新增域名或证书监控,线上部署推荐域名监控,未部署选择证书监控。步骤2:查询监控记录详情。步骤3:在详情页查看每日定时检测结果或手动测试。
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
HTTPS 证书自动化运维:https证书管理系统-自动化部署
本指南介绍如何部署Linux服务器节点。首先复制生成的Linux脚本命令,然后将其粘贴到目标服务器上运行。接着刷新页面查看节点记录,并点击“配置证书”选择证书以自动部署。最后,节点部署完成,后续将自动调度,无需人工干预。
HTTPS 证书自动化运维:https证书管理系统-自动化部署
HTTPS 证书自动化运维:https证书管理系统之自动化签发
通过访问【https://www.lingyanspace.com】注册账户,进入证书服务菜单并新增证书。填写域名(单域名、多域名或泛域名),创建订单后添加云解析DNS记录进行质检。确认完成后可下载证书,并支持后续查看、更新和定时更新功能。证书过期前15天自动更新,需配置邮箱接收通知。
HTTPS 证书自动化运维:https证书管理系统之自动化签发
LangGraph:构建多代理动态工作流的开源框架,支持人工干预、循环、持久性等复杂工作流自动化
LangGraph 是一个基于图结构的开源框架,专为构建状态化、多代理系统设计,支持循环、持久性和人工干预,适用于复杂的工作流自动化。
376 12
LangGraph:构建多代理动态工作流的开源框架,支持人工干预、循环、持久性等复杂工作流自动化
HTTPS 证书自动化运维:HTTPS 证书管理系统之使用指南
本文详细介绍【灵燕空间HTTPS证书管理系统】(https://www.lingyanspace.com)的配置与使用,涵盖注册账户、邮箱配置及证书自动签发、监控和部署的一体化指南。通过页面顶部菜单的【视频教程】和【图文教程】,帮助用户从注册到实际应用全面掌握系统操作。最新迭代后,泛域名证书已包含根域名,无需额外申请多域名证书。
解锁工作流自动化的力量:Argo Workflows
在现代软件开发和数据处理环境中,高效的工作流编排和自动化已成为关键需求。Argo Workflows 是一个领先的 Kubernetes 原生工作流引擎,专为处理复杂工作流而设计。它帮助企业实现自动化、缩短交付周期,并显著提高生产效率。计算巢已提供Argo Workflows 社区版服务。
解锁工作流自动化的力量:Argo Workflows
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等