Airflow 配置celery+rabbitmq和celery+redis

Airflow 配置celery+rabbitmq

1、安装celery和rabbitmq组件

pip3 install apache-airflow[celery]

pip3 install apache-airflow[rabbitmq]

2、系统安装rabbit

  1)安装 erlang

yum install -y erlang

  如果报错如下:

[**** ]# yum install erlang
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
No package erlang available.
Error: Nothing to do

  则需要安装第三方软件库 epel:

# 下载
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# 安装完成即可
rpm -ivh epel-release-latest-7.noarch.rpm

  再次执行则可以成功安装erlang了!

  2)安装 rabbitmq

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el6.noarch.rpm
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
yum install -y rabbitmq-server-3.6.15-1.el6.noarch.rpm

 

  3)配置rabbitmq(设置用户名root,密码rabbitmq,创建虚拟主机airflow-rabbitmq)

[root@centos-master airflow]# /sbin/service rabbitmq-server stop
Stopping rabbitmq-server (via systemctl):                  [  OK  ]
[root@centos-master airflow]# /sbin/service rabbitmq-server start
Starting rabbitmq-server (via systemctl):                  [  OK  ]
[root@centos-master airflow]# rabbitmqctl add_user root rabbitmq
Creating user "root"
[root@centos-master airflow]# rabbitmqctl add_vhost airflow-rabbitmq
Creating vhost "airflow-rabbitmq"
[root@centos-master airflow]# rabbitmqctl set_user_tags root airflow-rabbitmq
Setting tags for user "root" to ['airflow-rabbitmq']
[root@centos-master airflow]# rabbitmqctl set_permissions -p airflow-rabbitmq root ".*" ".*" ".*"
Setting permissions for user "root" in vhost "airflow-rabbitmq"
[root@centos-master airflow]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  amqp_client
  cowlib
  cowboy
  rabbitmq_web_dispatch
  rabbitmq_management_agent
  rabbitmq_management

 

  4)修改airflow配置

[root@centos-master airflow]# vi airflow.cfg 
    executor = CeleryExecutor
    broker_url = amqp://root:rabbitmq@localhost:5672/airflow-rabbitmq
    result_backend = amqp://root:rabbitmq@localhost:5672/airflow-rabbitmq

 [root@centos-master airflow]# echo "export C_FORCE_ROOT="True"" >> /etc/profile
 [root@centos-master airflow]# source /etc/profile

 

 

Airflow 配置celery+redis

 

1.安装redis

yum -y install redis

 

2.修改配置文件

sudo vim /etc/redis.conf
#bind 127.0.0.1     // 注释掉,使redis允许远程访问
requirepass redis  // 修改这行,redis登录密码(自定义)

 

 

3.开启redis服务

systemctl start redis

 

4.python下安装redis库

pip3 install redis

 

5.安装celery

pip3 install celery

 

6.配置airflow.cfg

executor = CeleryExecutor
broker_url = redis://127.0.0.1:6379/0
result_backend = redis://127.0.0.1:6379/0

 

 

 

 

Airflow集群搭建是指在Airflow平台上部署多台机器来共同运行和管理任务调度。为了提高可靠性、可扩展性和性能,搭建Airflow集群是一个不错的选择。 首先,需要安装和配置Apache Airflow。可以通过pip安装Airflow并进行相关配置,包括数据库连接、身份验证、队列和消息代理等。 接下来,需要设置数据库。Airflow使用数据库来存储任务和运行状态。可以选择使用传统的关系型数据库如MySQL或PostgreSQL,也可以选择使用NoSQL数据库如MongoDB。 然后,需要配置调度器和执行器。Airflow使用调度器来创建和调度任务实例,并使用执行器来执行任务。可以选择使用本地调度器和执行器,也可以选择使用分布式调度器如Celery和分布式执行器如Dask。 在搭建Airflow集群时,还需要设置和配置任务队列和消息代理。可以选择使用RabbitMQRedis或Kafka等消息队列,以及使用Celery、SQS或Google Cloud Pub/Sub等消息代理。 另外,为了保证集群的高可用性,可以使用负载均衡器来均衡集群中各个节点的负载。可以选择使用Nginx或HAProxy等负载均衡器。 最后,需要进行集群的监控和管理。可以使用监控工具如Prometheus和Grafana来监控集群中各个节点的运行状态和性能指标,以及使用调度器和执行器的日志来进行任务的管理和故障排查。 总结而言,搭建Airflow集群需要安装和配置Airflow、设置和配置数据库、调度器和执行器、任务队列和消息代理,以及设置负载均衡器和监控工具。这样可以实现任务调度的高可用性、可扩展性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值