之前介绍过的 apache-airflow 系列文章
airflow 配置 CeleryExecutor
介绍了如何安装、配置、及使用,接下来介绍如何在跨多个节点来安装部署 apache-airflow:
本文主要介绍以下几点:
- airflow 的守护进程
- airflow 单节点部署
- airflow 多节点(集群)部署
- airflow 集群部署的具体步骤
集群部署将为您的 apache-airflow 系统带来更多的计算能力和高可用性。
airflow 的守护进程
airflow 系统在运行时有许多守护进程,它们提供了 airflow 的全部功能。守护进程包括 Web服务器-webserver、调度程序-scheduler、执行单元-worker、消息队列监控工具-Flower等。下面是 apache-airflow 集群、高可用部署的主要守护进程。
webserver
webserver 是一个守护进程,它接受 HTTP 请求,允许你通过 Python Flask Web 应用程序与 airflow 进行交互,webserver 提供以下功能:
- 中止、恢复、触发任务。
- 监控正在运行的任务,断点续跑任务。
- 执行 ad-hoc 命令或 SQL 语句来查询任务的状态,日志等详细信息。
- 配置连接,包括不限于数据库、ssh 的连接等。
webserver 守护进程使用 gunicorn 服务器(相当于 java 中的 tomcat )处理并发请求,可通过修改{AIRFLOW_HOME}/airflow.cfg文件中 workers 的值来控制处理并发请求的进程数。
例如:
workers = 4 #表示开启4个gunicorn worker(进程)处理web请求
启动 webserver 守护进程:
$ airfow webserver -D
scheduler
scheduler 是一个守护进程,它周期性地轮询任务的调度计划,以确定是否触发任务执行。
启动的 scheduler 守护进程:
$ airfow scheduler -D
worker
worker 是一个守护进程,它启动 1 个或多个 Celery 的任务队列,负责执行具体 的 DAG 任务。
当设置 airflow 的 executors 设置为 CeleryExecutor 时才需要开启 worker 守护进程。推荐你在生产环境使用 CeleryExecutor :
executor = CeleryExecutor
启动一个 worker守护进程,默认的队列名为 default:
$ airfow worker -D
flower
flower 是一个守护进程,用于是监控 celery 消息队列。启动守护进程命令如下:
$ airflow flower -D
默认的端口为 5555,您可以在浏览器地址栏中输入 “http://hostip:5555<