Airflow安装与配置
外观
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
架构图[编辑 | 编辑源代码]
常见问题[编辑 | 编辑源代码]
- 错误:端口冲突
修改airflow.cfg
中的web_server_port
或停止占用端口的进程
- 警告:SQLite不支持并行任务
生产环境必须更换为PostgreSQL/MySQL
- 性能优化
调整parallelism
和max_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
数学公式示例[编辑 | 编辑源代码]
任务调度间隔计算(每小时运行):
总结[编辑 | 编辑源代码]
本节完整演示了Airflow从开发到生产环境的安装与配置流程,涵盖单机部署和分布式架构。正确配置是保证稳定运行的基础,建议根据实际负载调整参数并定期备份元数据库。