为多种环境设置气流

时间:2018-11-20 20:16:23

标签: python airflow

设置Airflow的惯用方式是什么,因此,如果您有两个环境(例如Production-East和Production-West),则只会显示这些环境中的每一个,但它们可以存在于单个存储库中?

2 个答案:

答案 0 :(得分:2)

实现此目标的理想方法是使用命名队列。 设置了多个工作人员,其中一些工作在Production-East环境中,另一些工作在Production-West环境中。这样,两个DAG都将显示在UI中,但它们仅在具有特定环境的工作计算机上执行。

来自documentation for queues

使用CeleryExecutor时,可以指定将任务发送到的celery队列。队列是BaseOperator的属性,因此可以将任何任务分配给任何队列。环境的默认队列在airflow.cfg的{​​{1}}中定义。这定义了未指定任务时分配给其的队列,以及Airflow工作人员在启动时侦听的队列。

工作人员可以收听一个或多个任务队列。启动工作程序时(使用命令celery -> default_queue),可以指定一组用逗号分隔的队列名称(例如airflow worker)。然后,该工作人员将仅拾取连接到指定队列的任务。

如果您需要专门的工作人员,这可能很有用,无论是从资源角度来看(例如,非常轻量级的任务,其中一个工作人员可以毫无问题地执行数千个任务),或者从环境的角度(您希望一个工作人员从内部运行) Spark群集本身,因为它需要非常具体的环境和安全权限。

答案 1 :(得分:1)

已将每个组的文件放在子文件夹中,然后设置dags_folder路径以指向服务器的相应子文件夹。