尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

如何快速上手 Apache Airflow 3:工作流编排、调度与监控指南

如何快速上手 Apache Airflow 3:工作流编排、调度与监控指南 如何快速上手 Apache Airflow 3工作流编排、调度与监控指南【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflowApache Airflow 3 是 Apache 软件基金会旗下的工作流编排平台让你用 Python 代码编写、定时调度和监控数据管道这类批处理工作流。如果你的团队有先跑 A 再跑 B、失败了要重试、状态要一眼看清这类需求Airflow 是常见的选择之一。当前仓库中 3.x 系列的最新稳定补丁为 3.3.1开发版 3.4.0要求 Python 3.10–3.14。适合数据工程师、后端开发和运维人员阅读。本文先讲清它怎么工作再给出跑通的最短路径、一个完整案例和上生产前的检查清单。如何理解 Apache Airflow 3 的工作机制先记住三个角色的分工DAG 定义做什么、什么顺序调度器Scheduler负责什么时候跑、按依赖顺序派发任务实例Task Instance记录每一次执行的真实状态。你的 Python 代码DAG │ 被扫描并解析 ▼ Scheduler ──派发──▶ Worker 执行任务 │ ▼ 元数据库记录状态、日志、XCom │ ▼ Web UIhttp://localhost:8080一个 DAG 就是一个 Python 文件放在AIRFLOW_HOME下的dags/目录里Airflow 会周期性扫描并解析其中的任务与依赖。每个任务每次运行都会生成一条任务实例记录状态在未开始 → 排队 → 运行中 → 成功/失败之间流转失败可配置自动重试。任务之间用小量元数据传递用 XCom官方建议任务保持幂等、不要把大数据集在任务间直接搬来搬去。在本地开发时airflow standalone命令会把调度器、Web 服务、触发器等组件一并拉起方便你理解各组件职责。每个任务实例从创建到完成/失败的状态流转如下5 分钟跑通本地 Airflow 3 的最短路径在 Python 3.10–3.14 环境下执行下面 5 条命令python -m venv airflow_env source airflow_env/bin/activate pip install apache-airflow3.3.0 export AIRFLOW_HOME~/airflow airflow standalone几点说明AIRFLOW_HOME是 Airflow 的主目录配置、日志都落在里面示例中设为~/airflow。airflow standalone首次启动时会在终端打印生成的用户名和密码用它登录 Web UI。浏览器访问http://localhost:8080即可看到 DAG 列表、触发运行、查看日志。官方安装文档建议首次安装时配合 constraint 约束文件以保证依赖可复现见 PyPI 安装说明 与仓库根目录的 INSTALLING.md。启动成功后在 DAG 列表页可以看到已解析的工作流并手动触发完整案例用 TaskFlow 编写一个夜间日志清洗管道下面是一个贴近实际的场景每天凌晨 2 点收集前一天的服务日志、清洗脱敏、汇总错误率。代码是仓库示例 DAG 同款的最小写法airflow.sdk导入方式见 示例 DAG 目录from datetime import datetime from airflow.sdk import dag, task dag(start_datedatetime(2024, 1, 1), schedule0 2 * * *) def nightly_log_pipeline(): task def collect_logs(): # 收集昨天的服务日志返回文件清单元数据不是数据本身 return [app-2024-05-01.log, web-2024-05-01.log] task def clean_logs(files): # 按文件逐一清洗去掉调试噪音、对敏感字段脱敏 return [f for f in files if f.startswith(app)] task def report_error_rate(files): # 统计错误率并写入报表系统 print(f待统计错误率的文件数{len(files)}) files collect_logs() clean clean_logs(files) report_error_rate(clean) nightly_log_pipeline()关键约定schedule0 2 * * *是 cron 表达式每天 02:00 触发一次任务文件放到dags/目录即被自动发现。task装饰的普通函数之间用函数调用表达依赖clean_logs(files)里传入的files会经 XCom 自动传给上游返回值。在 UI 里启用该 DAG 后可以点 Trigger Dag 手动触发也可以等调度时间自动运行失败任务按配置自动重试。仓库自带了逐步讲解的 TaskFlow 教程 和 完整教程索引可以对照阅读。Apache Airflow 3 生产环境部署检查清单上生产前逐项确认以下事项依据仓库 README 与 Helm chart 文档元数据库不要在生产使用 SQLite官方明确不建议改用 PostgreSQL14–18或 MySQL 8。运行平台只支持 POSIX 系统参考镜像基于 Debian BookwormWindows 上开发请用 WSL2 或容器。部署形态中小规模可用 Docker 运行apache/airflow官方镜像Kubernetes 环境可用本仓库的 Helm chart含 scheduler、workers、triggerer、api-server 等模板见 chart 文档。组件拆分生产环境通常把调度器、Web/API 服务、触发器等拆开独立部署而非standalone。任务设计保持幂等、大计算委托给 Spark 等外部引擎Airflow 只做编排与状态记录它不是流式系统实时数据以拉取批次的方式处理。可观测性用 UI 的 Grid/Graph 视图跟踪运行必要时接告警与日志收集参考 管理文档目录。下一步读完 官方入门教程fundamentals → taskflow → pipeline 三篇顺序即可上手。跑一遍 示例 DAG 目录 里的example_simplest_dag.py在 UI 里观察一次完整运行。准备上生产时先读 INSTALLING.md 与 Helm chart 生产指南。【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表