设置Airflow的惯用方式是什么,因此,如果您有两个环境(例如Production-East和Production-West),则只会显示这些环境中的每一个,但它们可以存在于单个存储库中?
答案 0 :(得分:2)
实现此目标的理想方法是使用命名队列。
设置了多个工作人员,其中一些工作在Production-East
环境中,另一些工作在Production-West
环境中。这样,两个DAG都将显示在UI中,但它们仅在具有特定环境的工作计算机上执行。
使用CeleryExecutor时,可以指定将任务发送到的celery队列。队列是BaseOperator的属性,因此可以将任何任务分配给任何队列。环境的默认队列在airflow.cfg
的{{1}}中定义。这定义了未指定任务时分配给其的队列,以及Airflow工作人员在启动时侦听的队列。
工作人员可以收听一个或多个任务队列。启动工作程序时(使用命令celery -> default_queue
),可以指定一组用逗号分隔的队列名称(例如airflow worker
)。然后,该工作人员将仅拾取连接到指定队列的任务。
如果您需要专门的工作人员,这可能很有用,无论是从资源角度来看(例如,非常轻量级的任务,其中一个工作人员可以毫无问题地执行数千个任务),或者从环境的角度(您希望一个工作人员从内部运行) Spark群集本身,因为它需要非常具体的环境和安全权限。
答案 1 :(得分:1)
已将每个组的文件放在子文件夹中,然后设置dags_folder
路径以指向服务器的相应子文件夹。