尧图网站设计 尧图网站设计YAOTU DESIGN
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 是用代码定义工作流的调度平台解决数据任务多、依赖复杂、没人盯执行结果的问题。读完本文你能在本地三步把它跑起来写出每天自动运行的统计 DAG并在 UI 里查看执行状态与失败原因。一句话说清它是什么一句话Airflow 把你写的 Python 文件变成一张可调度、可重试、可审计的任务依赖图。对比传统做法维度传统手动 / cron 做法使用 Apache Airflow 后任务依赖脚本互相调用断了不好查代码声明系统自动画出依赖图调度crontab 散落在多台机器上集中调度支持daily等 cron 预设失败处理靠人巡检发现、手工重跑自动重试任务级状态追踪执行审计日志散落各处难回溯UI 记录每次运行、每个任务的状态三步跑通最小可用环境Apache Airflow 3 快速上手下面 3 条命令完成安装与启动standalone会初始化数据库、创建管理员用户并把调度器等组件一起拉起。python -m venv .venv source .venv/bin/activate pip install apache-airflow airflow standalone启动成功后浏览器打开http://localhost:8080。Airflow 3 的 admin 密码是自动生成的写入$AIRFLOW_HOME/simple_auth_manager_passwords.json.generated不是默认的 admin/admin。系统自带example_bash_operator等示例 DAG在首页开启后即可看到任务跑起来变绿先感受跑起来的效果。核心概念白话拆解DAG工作流的地图它是什么一个 Python 文件声明的一组任务以及它们之间的先后依赖。为什么必须有没有它调度器不知道先跑谁有了它UI 能画图失败时能定位断在哪条边上。在界面上长什么样Graph 视图里每个节点是一个任务连线表示执行顺序节点颜色代表状态。任务与它的状态生命周期它是什么DAG 上的一个节点是调度和重试的最小单位。为什么必须有重试、并发、失败通知都作用在任务粒度上出问题时只重跑失败的那个。在界面上长什么样状态从 scheduled 到 queued、running、success 流转失败后下游会被直接标记为 upstream_failed不浪费执行资源。三个核心组件Dag Processor、Scheduler、Worker它是什么Dag Processor 负责把 DAG 文件解析成元数据Scheduler 决定什么时间跑什么Worker 真正执行代码。为什么必须有Airflow 3 把用户代码与元数据库隔离组件可独立部署、独立扩容。在界面上长什么样首页顶部的 Health 横条逐项显示各组件运行状态变红就对应到组件去排查。用一个真实场景完整走一遍每日营收统计 DAG场景电商业务要每天统计营收——拉取订单、聚合计算、低于阈值就告警。完整 DAG 如下from datetime import datetime from airflow import DAG from airflow.operators.python import PythonOperator def fetch_orders(): # 从业务库拉取当日订单 return {orders: 128} def calc_revenue(data): # 按渠道聚合营收 print(ftotal revenue: {data[orders] * 99}) def alert_if_low(data): # 营收低于阈值时发通知 print(revenue below threshold, notify) with DAG(dag_iddaily_revenue, start_datedatetime(2024, 1, 1), scheduledaily, catchupFalse): fetch PythonOperator(task_idfetch_orders, python_callablefetch_orders) calc PythonOperator(task_idcalc_revenue, python_callablecalc_revenue) alert PythonOperator(task_idalert_if_low, python_callablealert_if_low) fetch calc alert为什么这么设计一个任务只做一件事失败重试粒度小不用整链重跑。声明依赖不手动管理执行顺序UI 直接渲染出依赖图。catchupFalse首次上线只跑当天避免把历史日期一次性补跑爆炸。DAG 被解析后Overview 页会列出本次运行全部任务及其状态上线前必须知道的 3 件事standalone 不适合生产它是开发模式生产环境把 API server、scheduler、dag-processor、worker 拆开独立部署并扩容参考生产部署文档。盯住三个指标失败 DAG 数、任务实例成功率、池剩余槽位首页 Pool Slots 横条任务排队时长持续上涨就是资源不够的信号。两个高频坑改 DAG 代码要等 Dag Processor 重新解析后才生效凭据不要写死在代码里用 Connections/Variables 管理UI 会自动脱敏。高频问题 FAQ问DAG 文件写好了UI 里为什么看不到答文件要先被 Dag Processor 解析才可见且必须放在 dags 目录standalone 下为~/airflow/dags。若终端报了语法错误该文件会被整体跳过。问daily能改成具体时间点吗答可以schedule直接传 cron 表达式如schedule0 2 * * *表示每天凌晨 2 点0 9 * * 1-5表示仅工作日。问状态是 upstream failed 是什么意思答当前任务没执行是它依赖的上游任务失败了。先修红色的上游任务重试成功后再手动重跑下游。Airflow 的核心思路只有一条用代码描述工作流把执行、重试、审计交给系统。挑一个你每天重复跑的数据任务按上面的模式改写成 3 个任务的 DAG。更完整的步骤见官方快速上手文档。【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表