airflow安装(高可用,集群)

入门安装参考:https://www.cnblogs.com/post/readauth?url=/liubao-xiaoqin/p/9698532.html

队列服务及元数据库(Metestore)的高可用。
  • 队列服务取决于使用的消息队列是否可以高用可部署,如 RabbitMQ 和 Redis。
    RabbitMQ 集群并配置Mirrored模式见:http://blog.csdn.net/u010353408/article/details/77964190

  • 元数据库(Metestore) 取决于所使用的数据库,如 Mysql 等。
    Mysql 做主从备份见:http://blog.csdn.net/u010353408/article/details/77964157

airflow 集群部署的具体步骤

前提条件

        1. 节点运行的守护进程如下:

    • master1 运行: webserver, scheduler

    • master2 运行:webserver

    • worker1 运行:worker

    • worker2 运行:worker

    2. 队列服务处于运行中. (RabbitMQ, Redis, etc)

    • 安装 RabbitMQ 方法参见: http://site.clairvoyantsoft.com/installing-rabbitmq/

    • 如果正在使用 RabbitMQ, 推荐 RabbitMQ 也做成高可用的集群部署,并为 RabbitMQ 实例配置负载均衡。

步骤
  1. 所有需要运行守护进程的机器上安装 Apache Airflow。具体安装方法可参考 airflow 的安装部署与填坑

  2. 修改 {AIRFLOW_HOME}/airflow.cfg 文件,确保所有机器使用同一份配置文件。

  • 修改 Executor 为 CeleryExecutor

executor = CeleryExecutor
  • 指定元数据库(metestore)

sql_alchemy_conn = mysql://{USERNAME}:{PASSWORD}@{MYSQL_HOST}:3306/airflow
  • 设置中间人(broker)

如果使用 RabbitMQ

broker_url = amqp://guest:guest@{RABBITMQ_HOST}:5672/

如果使用 Redis

broker_url = redis://{REDIS_HOST}:6379/0  #使用数据库 0 
  • 设定结果存储后端 backend

celery_result_backend = db+mysql://{USERNAME}:{PASSWORD}@{MYSQL_HOST}:3306/airflow #当然您也可以使用 Redis :celery_result_backend =redis://{REDIS_HOST}:6379/1
  1. 在 master1 和 master2 上部署您的工作流(DAGs)。

  2. 在 master 1,初始 airflow 的元数据库

$ airflow initdb
  1. 在 master1, 启动相应的守护进程

$ airflow webserver
$ airflow scheduler
  1. 在 master2,启动 Web Server

$ airflow webserver
  1. 在 worker1 和 worker2 启动 worker

$ airflow worker
  1. 使用负载均衡处理 webserver
    可以使用 nginx,AWS 等服务器处理 webserver 的负载均衡,不在此详述

猜你喜欢

转载自www.cnblogs.com/liubao-xiaoqin/p/9771578.html