gpt4 book ai didi

airflow - 单个 Airflow dag 中可以安排多少个任务?

转载 作者:行者123 更新时间:2023-12-02 17:16:33 27 4
gpt4 key购买 nike

我对 Airflow 完全陌生,在任何地方都找不到可以在单个 Airflow DAG 中安排多少个任务的信息。以及每个任务的最大大小是多少。

我想安排一个任务,该任务应该能够处理数百万个查询并识别其类型并根据查询类型安排下一个任务。

阅读完整文档但找不到它

最佳答案

单个 DAG 中可以包含的任务数量没有限制。

通过 Airflow 配置,您可以设置执行时间的并发限制,例如总体并行任务的最大数量、给定 DAG 的并发 DAG 运行的最大数量等。在 Airflow 级别、DAG 级别、和运算符(operator)级别进行更粗粒度到细粒度的控制。

以下是您可以调整的高级并发设置:

# 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

引用:default_airflow.cfg

并行度设置在this answer中有更详细的描述。 。至于每个任务的最大“大小”,我假设您指的是资源分配,例如内存或 CPU。这是用户可配置的,具体取决于您选择使用的执行器:

  • 例如,在使用 LocalExecutor 的简单设置中,它将使用主机上可用的任何资源。
  • 相比之下,另一方面,使用 MesosExecutor,可以定义分配给任务实例的最大 CPU 和/或内存量,并通过 DockerOperator code> 您还可以选择定义给定任务实例将使用的最大 CPU 和内存量。
  • 使用 CeleryExecutor,您可以设置 worker_concurrency 来定义每个工作线程将执行的任务实例数。

限制执行的另一种方法是使用 Pools功能( example ),例如,您可以将与数据库通信的任务池的最大大小设置为 5,以防止超过 5 个任务同时命中该池(并可能使数据库/API/您所使用的任何资源重载)想要联合对抗)。

关于airflow - 单个 Airflow dag 中可以安排多少个任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50737800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com