3 步跑通 Apache Airflow 3.4:新手友好的工作流调度与监控入门
3 步跑通 Apache Airflow 3.4新手友好的工作流调度与监控入门【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflow周五下午五点半运营小王盯着屏幕发愁周报还要等数据组导完表才能做排版排版好了才能导出 PDFPDF 又得等设计确认格式。三个环节串在三个人的手里任何一个卡住整份周报就得顺延到下周。这种人等人、任务等任务的流程正是Apache Airflow要解决的问题。Airflow 3.4.0 是 Apache 基金会的开源调度平台核心功能是把这类流程写成代码由系统按计划自动执行、失败自动重试、全程可查。项目快速定位它是什么适合谁一句话概括Airflow 是一个用 Python 代码定义、定时执行、带网页面板的工作流编排平台适合数据工程师、运维人员以及任何有多步骤任务要按顺序自动跑需求的团队。它解决的三件事每件都对应具体功能把任务关系固化成代码。工作流写成 DAG 文件Python 脚本放进dags/目录用符号声明先后顺序改流程只需改代码还能用 Git 做版本管理。按计划自动执行。调度器airflow scheduler读取schedule参数如0 6 * * 1每周一早上 6 点决定何时启动 DAG无需人工记得去点运行。执行过程可查可控。Web 界面展示每次运行中每个任务的耗时、状态与日志失败的节点可以单独重跑对应命令是airflow tasks test dag_id task_id 日期。最小可运行配置一条命令装好一条命令启动环境要求只有一个Python 3.10 及以上版本。以下命令完成安装并启动独立模式standalone 会自动初始化数据库、创建管理员并拉起调度器export AIRFLOW_HOME~/airflow # 指定 Airflow 主目录 python3 -m venv airflow_venv source airflow_venv/bin/activate pip install apache-airflow3.4.0 # 安装当前版本 airflow standalone # 一键启动全部组件启动后浏览器打开http://localhost:8080即可登录。注意 3.x 版本的管理员密码是随机生成的存放在~/airflow/simple_auth_manager_passwords.json.generated首次登录用它即可。首页会列出自带示例例如example_bash_operator点一下 Enabled 就能跑起来。概念拆解先看懂这张架构图再记三个词官方架构图先给出全局视图左边是 API Server 负责界面与接口中间是 Scheduler 做调度决策下面是 Worker 执行任务所有状态都存在元数据库里。下面按先类比、再定义的方式拆三个核心概念。DAG有向无环图——流程的施工图纸。图纸上标了先砌墙还是先铺线工人照着干就行。在 Airflow 中DAG 是写在 Python 文件里的工作流定义声明了包含哪些任务、先后顺序如何、什么时间触发文件放进dags/目录即被识别。Operator算子——流程里的单个工位。每个工位只干一类活PythonOperator 执行一段 Python 函数BashOperator 跑一条 shell 命令。在 Airflow 中Operator 是可复用的任务执行单元负责具体怎么干与调度时机解耦。Scheduler调度器——车间里的班组长。图纸到手后班组长决定哪个工位现在该开工、哪个得等着。在 Airflow 中Scheduler 是后台常驻进程按调度表达式和任务依赖关系把符合条件的任务派发给 Worker 执行。完整场景演练一条每周内容生产的流水线换一个内容生产的例子每周一早上 6 点自动抓取本周选题、渲染版面、生成 PDF 并发给订阅者。整条流水线如下from datetime import datetime from airflow import DAG from airflow.operators.python import PythonOperator # 四个占位函数选题抓取、版面渲染、PDF 生成、邮件发送 fetch_topics lambda: print(抓取本周选题) render_layout lambda: print(渲染版面) build_pdf lambda: print(生成 PDF) send_email lambda: print(发送给订阅者) with DAG(dag_idweekly_newsletter, start_datedatetime(2024, 1, 1), schedule0 6 * * 1) as dag: # 每周一 06:00 触发 fetch PythonOperator(task_idfetch_topics, python_callablefetch_topics) layout PythonOperator(task_idrender_layout, python_callablerender_layout) pdf PythonOperator(task_idbuild_pdf, python_callablebuild_pdf) mail PythonOperator(task_idsend_email, python_callablesend_email) fetch layout pdf mail # 声明四步的先后顺序把文件保存为dags/weekly_newsletter.py等 DAG 处理器扫描到它界面里就会出现这条流水线。点开某次运行能看到四个节点依次变绿若build_pdf失败界面会显示失败原因和日志修复后对该节点重跑即可不必从头执行。从上手到运维监控要点与部署建议日常看三个指标。在 UI 的 Grid / Details 视图关注各任务的失败率是否上升、单次运行总时长是否变长、是否有任务长期处于排队说明 Worker 资源不够。失败排查入口就是任务节点的 Logs 页配合命令airflow tasks test可脱离调度直接复现单步。部署规模按需选择。单机验证/小团队airflow standalone一条命令跑全部组件生产化时把元数据库从 SQLite 换成 PostgreSQL各进程分开常驻。集群多团队用官方 Helm Chart仓库chart/目录部署到 KubernetesWorker 可水平扩容Scheduler、DAG Processor、Triggerer 独立伸缩。学习路径建议三步走。先读 官方快速上手 和 教程章节 把基础概念过一遍再打开仓库自带示例如example_bash_operator逐行对照修改最后加入社区渠道官方 Slack 与邮件列表遇到问题先看 故障排查文档仍然解决不了再提问。工具的价值在于把记得去跑变成到点就跑。把上面这条流水线改成你自己的场景Airflow 的第一课就算完成了。【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考