跳转到内容

Airflow安装与配置

来自代码酷
Admin留言 | 贡献2025年4月29日 (二) 18:51的版本 (Page creation by admin bot)

(差异) ←上一版本 | 已核准修订 (差异) | 最后版本 (差异) | 下一版本→ (差异)

Airflow安装与配置[编辑 | 编辑源代码]

介绍[编辑 | 编辑源代码]

Apache Airflow 是一个用于编排、调度和监控工作流的开源平台。它以代码定义任务依赖关系,支持动态生成管道,并提供丰富的扩展接口。本节将详细介绍如何在不同环境中安装和配置Airflow,涵盖基础设置、数据库集成及核心参数调优。

系统要求[编辑 | 编辑源代码]

  • Python: 3.7+(推荐3.8或更高版本)
  • 操作系统: Linux/macOS(Windows需WSL或Docker支持)
  • 数据库: PostgreSQL(推荐)、MySQL 5.7+、SQLite(仅开发环境)

安装步骤[编辑 | 编辑源代码]

1. 使用pip安装[编辑 | 编辑源代码]

通过Python包管理器安装核心组件:

  
# 安装最新稳定版  
pip install "apache-airflow==2.6.3"  

# 可选:包含常用扩展(如Postgres支持)  
pip install "apache-airflow[postgres,celery]==2.6.3"

注意: 方括号内为额外依赖,根据需求选择:

  • postgres: PostgreSQL数据库支持
  • celery: 分布式任务队列
  • all: 全部官方扩展

2. 初始化数据库[编辑 | 编辑源代码]

Airflow需要元数据库存储工作流状态:

  
# 设置环境变量(默认SQLite)  
export AIRFLOW_HOME=~/airflow  

# 初始化数据库  
airflow db init

3. 创建管理员用户[编辑 | 编辑源代码]

  
airflow users create \  
    --username admin \  
    --firstname John \  
    --lastname Doe \  
    --role Admin \  
    --email admin@example.com

配置详解[编辑 | 编辑源代码]

核心配置文件[编辑 | 编辑源代码]

配置文件位于$AIRFLOW_HOME/airflow.cfg,关键参数:

参数 默认值 说明
SequentialExecutor | 任务执行器(开发用)
sqlite:///$AIRFLOW_HOME/airflow.db | 数据库连接字符串
$AIRFLOW_HOME/dags | DAG定义文件目录

生产环境配置示例[编辑 | 编辑源代码]

使用PostgreSQL和CeleryExecutor的配置片段:

  
[core]  
executor = CeleryExecutor  
sql_alchemy_conn = postgresql+psycopg2://user:password@localhost:5432/airflow  

[celery]  
broker_url = redis://localhost:6379/0  
result_backend = db+postgresql://user:password@localhost:5432/airflow

实际案例[编辑 | 编辑源代码]

场景:本地开发环境搭建[编辑 | 编辑源代码]

1. 安装Python 3.8和虚拟环境:

  
python -m venv airflow_env  
source airflow_env/bin/activate

2. 安装Airflow并启动Web界面:

  
pip install "apache-airflow[postgres]==2.6.3"  
airflow db init  
airflow webserver --port 8080

3. 在浏览器访问http://localhost:8080

架构图[编辑 | 编辑源代码]

graph TD A[Web Server] -->|元数据| B[(PostgreSQL)] A -->|任务状态| C[Redis] D[Scheduler] -->|任务队列| C E[Worker] -->|执行任务| C

常见问题[编辑 | 编辑源代码]

  • 错误:端口冲突
 修改airflow.cfg中的web_server_port或停止占用端口的进程  
  • 警告:SQLite不支持并行任务
 生产环境必须更换为PostgreSQL/MySQL  
  • 性能优化
 调整parallelismmax_active_runs_per_dag参数  

进阶配置[编辑 | 编辑源代码]

使用Docker部署[编辑 | 编辑源代码]

官方提供apache/airflow镜像:

  
# docker-compose.yml示例  
version: '3'  
services:  
  postgres:  
    image: postgres:13  
    environment:  
      POSTGRES_USER: airflow  
      POSTGRES_PASSWORD: airflow  

  webserver:  
    image: apache/airflow:2.6.3  
    depends_on: [postgres]  
    environment:  
      AIRFLOW__CORE__EXECUTOR: CeleryExecutor  
      AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow

数学公式示例[编辑 | 编辑源代码]

任务调度间隔计算(每小时运行): interval=1×3600 seconds

总结[编辑 | 编辑源代码]

本节完整演示了Airflow从开发到生产环境的安装与配置流程,涵盖单机部署和分布式架构。正确配置是保证稳定运行的基础,建议根据实际负载调整参数并定期备份元数据库。