Airflow 集群安装

1.主机规划
内网ip & 主机名 &角色软件 & 运行进程
192.168.18.124 (master1)webserver, scheduler
192.168.18.125 (master2)webserver
192.168.18.126worker
192.168.18.127worker
192.168.18.128worker
2.master1 修改airflow配置 并完成相应的airflow初始化

参考<<Airflow 调度框架 安装经验分享 单节点>>

注意这里的mysql和redis链接地址需要改为相应服务器ip的地址
# 执行步骤1-8, 
# 9,10先不要执行
3.在master1 安装master的高可用组件
pip3 install git+git://github.com/teamclairvoyant/airflow-scheduler-failover-controller.git@v1.0.5
# 初始化
scheduler_failover_controller init

# 修改配置文件 airflow.cfg
# 需要修改
# scheduler_nodes_in_cluster = localhost
scheduler_nodes_in_cluster = 192.168.18.124,192.168.18.125

4.验证
scheduler_failover_controller test_connection
5.将配置ariflow文件发送到相应服务器并启动各组件
cd /usr/local
scp -r airflow 192.168.18.125:`pwd`
scp -r airflow 192.168.18.126:`pwd`
scp -r airflow 192.168.18.127:`pwd`
scp -r airflow 192.168.18.128:`pwd`

# master1
airflow webserver -D
airflow scheduler -D
# master2
airflow webserver -D

# worker1
airflow worker -D
# worker2
airflow worker -D
# worker3
airflow worker -D
6.启动高可用组件
nohup scheduler_failover_controller start > /dev/null &

参考 https://www.lmlphp.com/user/7265/article/item/354892/

### Airflow 集群化部署方案 #### 1. 架构概述 Apache Airflow 支持分布式架构,能够实现高可用性和负载均衡。典型的集群由多个组件构成:Web Server、Scheduler、Workers以及用于存储状态的数据库和消息队列服务。 - **Web Server**: 负责提供用户界面访问入口。 - **Scheduler**: 定期扫描DAG定义文件夹并触发相应的Task实例。 - **Worker(s)**: 执行具体的Tasks, Worker是独立的进程,可以分布在同一台或多台不同的机器上[^2]。 - **Backend Database (如MySQL/PostgreSQL)**: 存储元数据信息,包括但不限于DAG运行记录等。 - **Message Broker (如Redis/RabbitMQ)**: 协调调度器与工作者之间的通信,确保任务指令能可靠地传达给各个工作节点。 #### 2. 准备环境 为了搭建一个稳定的Airflow集群环境,需提前准备好必要的基础设施: - 至少两台服务器作为Worker节点; - 一台专门用来跑Web server + Scheduler的服务端; - 数据库服务器(推荐使用关系型数据库管理系统RDBMS),以持久保存作业历史和其他重要信息; - Redis 或 RabbitMQ 实例充当Celery broker角色; #### 3. 安装依赖包 考虑到可能出现的网络连接问题,在安装过程中建议预先下载所需的Python包及其约束条件文件至本地镜像源或可靠的第三方托管站点[^3]。这有助于避免因外部资源不可达而导致的安装失败情况发生。 ```bash pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${LOCAL_CONSTRAINT_URL}" ``` 其中`${LOCAL_CONSTRAINT_URL}`指向的是事先准备好的离线版本约束文件路径。 #### 4. 修改配置文件 编辑`airflow.cfg`来适应新的集群设置: - 设置`executor = CeleryExecutor`启用基于Celery的消息驱动执行模式; - 更新broker URL指向实际使用的中间件地址; - 指定结果后端URL以便于跟踪已完成的任务状态; - 根据实际情况调整其他相关选项,比如并发数限制(`parallelism`)、每worker最大启动task数量(`celeryd_concurrency`)等等。 #### 5. 启动各部分服务 按照顺序依次开启如下几个关键环节: - 初始化数据库表结构:`airflow db init`; - 创建管理员账号; - 开启webserver:`airflow webserver -p 8080 &`; - 运行scheduler守护程序:`airflow scheduler &`; - 对于每一个worker节点,则单独执行:`airflow celery worker`. 以上即完成了基本的Airflow集群构建流程描述[^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cocktail_py

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值