我可以配置airflow.cfg
文件来一个接一个地运行任务。
我想要做的是,并行执行任务,例如每次2个并到达列表的末尾。
我该如何配置?
答案 0 :(得分:8)
并行执行Airflow中的任务取决于您使用的执行程序,例如SequentialExecutor
,LocalExecutor
,CeleryExecutor
等。
对于简单的设置,只需将执行程序设置为airflow.cfg中的LocalExecutor
即可实现并行性:
[core]
executor = LocalExecutor
这将为每项任务启动一个单独的流程。
(当然,你需要一个DAG,其中至少有两个任务可以并行执行,看它是否有效。)
或者,使用CeleryExecutor
,您可以通过运行(根据需要多次)启动任意数量的工作人员:
$ airflow worker
任务将进入Celery队列,每个Celery工作人员都将退出队列。
您可能会在Airflow配置文档中找到使用Celery扩展部分。
https://airflow.apache.org/howto/executor/use-celery.html
对于任何执行程序,您可能希望在运行后调整控制并行性的核心设置。
他们都是在[core]
下找到的。这些是默认值:
# The amount of parallelism as a setting to the executor. This defines
# the max number of task instances that should run simultaneously
# on this airflow installation
parallelism = 32
# The number of task instances allowed to run concurrently by the scheduler
dag_concurrency = 16
# Are DAGs paused by default at creation
dags_are_paused_at_creation = True
# When not using pools, tasks are run in the "default pool",
# whose size is guided by this config element
non_pooled_task_slot_count = 128
# The maximum number of active DAG runs per DAG
max_active_runs_per_dag = 16
答案 1 :(得分:-1)
有人可以提供执行此操作的python代码-(当然,您需要具有至少2个可以并行执行的任务才能使其工作的DAG)?