airflow 配置 CeleryExecutor

本文介绍了如何配置Airflow的CeleryExecutor,利用Celery的分布式任务队列能力实现复杂任务调度。操作步骤包括安装Celery和Redis,配置airflow.cfg,安装python的redis包,最后启动Airflow。

阅读本文大概需要 3 分钟

celery 是分布式任务队列,与调度工具 airflow 强强联合,可实现复杂的分布式任务调度,这就是 CeleryExecutor,有了 CeleryExecutor,你可以调度本地或远程机器上的作业,实现分布式任务调度。本文介绍如何配置 airflow 的 CeleryExecutor。

操作步骤

CeleryExecutor 需要 Python 环境安装有 celery。

第一步: 安装celery

pip install celery

Celery 需要一个发送和接受消息的传输者 broker。RabbitMQ 和 Redis 官方推荐的生产环境级别的 broker,这里我们选用 Redis,只是因为安装起来非常方便,而 RabbitMQ 的安装需要 再安装 erlang 。

 第二步:安装 redis

先从 https://redis.io/download 下载稳定版本,目前是 redis-4.0.11.tar.gz。

tar -zxvf redis-4.0.11.tar.gz
cd redis-4.0.11
make      #编译
make test  #验证
cp redis.conf src/  #将配置文件复制以可执行文件同一目录
cd src
./redis-server redis.conf #按默认方式启动 redis-server ,仅监听 127.0.0.1 ,若监听其他 ip 修改为 bind 0.0.0.0

运行后的输出如下所示:

7359:C 16 Aug 21:19:26.539 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
7359:C 16 Aug 
### 如何在 Apache Airflow配置连接到 MySQL 8 为了使 Apache Airflow 能够与 MySQL 8 数据库交互,需要正确设置 `broker_url` 和其他必要的数据库连接参数。默认情况下,Airflow 使用 SQLite 存储元数据,这不支持多线程操作[^2]。 对于更复杂的生产环境,建议使用像 MySQL 这样的关系型数据库管理系统来替代 SQLite。具体来说,在安装和初始化 Airflow 后,编辑位于 `$AIRFLOW_HOME/airflow.cfg` 文件中的 `[core]` 部分下的 `sql_alchemy_conn` 参数以指定新的数据库 URI: ```ini sql_alchemy_conn = mysql+pymysql://username:password@host:port/database_name?charset=utf8mb4 ``` 其中: - **username**: 替换为实际的用户名; - **password**: 用户对应的密码; - **host**: 主机地址,默认是 localhost 或者 IP 地址; - **port**: 默认端口通常是 3306; - **database_name**: 创建好的数据库名称; 另外需要注意的是,如果要启用 CeleryExecutor,则还需要单独定义消息队列服务 URL (`broker_url`) 来处理工作流之间的通信[^1]。 当完成上述更改之后,请确保已经安装了 Python 的 PyMySQL 库以便能够成功建立与 MySQL 的连接。可以通过 pip 安装此依赖项: ```bash pip install pymysql ``` 最后一步是在启动之前重新加载 Airflow Webserver 及 Scheduler 服务,让修改后的配置生效。 #### 示例代码片段展示如何通过命令行工具验证连接状态 ```python from sqlalchemy import create_engine import pandas as pd engine = create_engine('mysql+pymysql://username:password@localhost:3306/mydb') df = pd.read_sql_query("SELECT * FROM information_schema.tables LIMIT 5;", engine) print(df.head()) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值