Airflow 气流平行度

Airflow 气流平行度,airflow,Airflow,本地执行器在调度任务时生成新进程。它创建的进程数量是否有限制。我需要改变它。我需要知道调度器的“最大线程”和 airflow.cfg?调度程序的max_threads中的“parallelism”是要在一段时间内并行化调度程序的进程数。最大线程数不能超过cpu计数。LocalExecutor的并行度是LocalExecutor应该运行的并发任务数。调度器和LocalExecutor都使用python的多处理库来实现并行性。并行性:不是一个很好的描述性名称。描述中说它设置了airflow安装的最大

本地执行器在调度任务时生成新进程。它创建的进程数量是否有限制。我需要改变它。我需要知道调度器的“最大线程”和
airflow.cfg?

调度程序的
max_threads
中的“parallelism”是要在一段时间内并行化调度程序的进程数。
最大线程数不能超过cpu计数。LocalExecutor的并行度是LocalExecutor应该运行的并发任务数。调度器和LocalExecutor都使用python的多处理库来实现并行性。

并行性:不是一个很好的描述性名称。描述中说它设置了airflow安装的最大任务实例,这有点含糊不清-如果我有两台主机运行airflow workers,我会在两台主机上安装airflow,因此应该是两次安装,但基于上下文“每个安装”这里指的是“每个airflow状态数据库”。我把它命名为max\u active\u tasks

dag\u并发性:尽管名称基于注释,但这实际上是任务并发性,并且是每个工作人员的。我将此命名为max_active_tasks_for_worker(per_worker会建议这是一个全局工人设置,但我认为您可以为此设置具有不同值的工人)

每个dag的最大活动运行次数:这一次还行,但由于它似乎只是匹配dag kwarg的默认值,因此最好在名称中反映这一点,例如默认最大活动运行次数 让我们继续讨论达格·夸尔格:

并发性:同样,有这样一个通用名称,再加上并发性在其他地方被用于不同的东西,这让人非常困惑。我称之为最大活动任务

最大活动跑步次数:我觉得这个不错

资料来源:



max_threads为用户提供了对cpu使用的一些控制。它指定了调度程序并行性。

现在是2019年,更多更新的文档已经发布。简言之:

AIRFLOW\uuuuu CORE\uuuuu PARALLELISM
是可在所有AIRFLOW(所有DAG中的所有任务)上并发运行的最大任务实例数

AIRFLOW\uuuuu CORE\uuuu DAG\u CONCURRENCY
是单个特定DAG允许并发运行的最大任务实例数

这些文档对其进行了更详细的描述:

根据:

parallelism是可以运行的最大任务实例数 同时依靠气流。这意味着在所有运行的DAG中,没有 一次将运行32个以上的任务

dag_concurrency是允许运行的任务实例数 同时在特定dag内。换句话说,你可以有2个 DAG并行运行16个任务,但单个DAG有50个任务 也只能运行16个任务,而不是32个任务

根据:

最大线程数:调度程序将并行生成多个线程 附表DAG。这由默认值为的max_threads控制 2.在生产环境中,用户应将此值增加到更大的值(例如,调度程序运行的CPU数-1)


但这最后一部分似乎不应该占用太多时间,因为它只是“日程安排”部分。不是实际的运行部分。因此,我们没有看到需要对
max\u线程进行太多的调整,但是
aiffair\uuuu CORE\uu并行性
aiffair\uu CORE\uu DAG\u并发性
确实影响了我们。

有没有办法指定每个任务的并行性?我发现,当我从SFTP下载数据时,我希望并行度为4或5。但是,当我加载数据时,我希望它仅为1(如果它不止一个,则不能保证不加载订单数据。现在我有顺序错误的串行键,因为我忘记将并行性返回到1,这有点烦人)airflow worker可以位于单独的机器上,而无需运行单独的airflow数据库实例。我在docker中运行我的airflow workers,我给他们一个队列url和一个db url,这非常有效!
max\u active\u runs
是否仍然相关?我在默认配置文件中看不到它:还有
worker\u concurrency
-这与
dag\u concurrency
相同吗?来自airlow:concurrency:Airflow scheduler在任何给定时间都不会为dag运行超过$concurrency的任务实例。并发是在DAG中定义的。如果未在DAG上设置并发,计划程序将使用airflow.cfg中DAG_并发项的默认值。我知道dag_concurrency=默认并发(在不设置并发时将使用)只想提一提自1.10.14以来,
max_线程
被重命名为
parsing_进程
max_线程
parsing_进程
的值应该是多少?相应的cpu核心应该有3个并行运行的DAG?答案是关于这个主题最完整的参考资料。