禁用 Airflow 迷你调度程序/快速跟踪
Disable Airflow mini-scheduler / fast-follow
我正在 运行在 Kubernetes 上安装 Airflow v2.2.3。
我有一个专用的调度程序 pod、一个专用的网络服务器 pod,并且我正在使用 Kubernetes 执行器。
我有大约 4,000 个 DAG,在 for 循环中动态创建。
我阅读了 Astronomer post 关于“快速跟随”(也称为“迷你调度程序”)的文章,我想知道是否有通过配置或其他方式禁用它的选项。
问题是,它会受到惩罚,其中:
- 每个任务操作员都在计算动态 DAG,因为每次都有新的执行器 运行ning - 我从未见过 Kubernetes 执行器的重用(如果它使用 pod 的
patch
动词那 - 我猜动态 DAG 无论如何都会重新计算)。
- 重新计算动态 DAG 所花费的时间会导致每个任务都处于“排队”状态 - 这意味着大量时间仅用于一遍又一遍地重新计算 DAG。
- 是否有禁用迷你调度程序的配置(或任何其他方式)?
- 我是不是用错了KubernetesExecutor?它是否应该完成一项以上的任务(因此只在开始时计算 dags)
- 我正在运行设置一个多租户设置,我的每个客户(企业)运行都有自己的 DAG - 但它们看起来都一样(除了输入参数 + 时间表时间)。我应该采取不同的方法吗? (每个客户使用专用 DAG 除外)。
谢谢
回答您的问题:
1。
此功能在 PR 中引入
要禁用 airflow.cfg
中设置的功能:
[scheduler]
schedule_after_task_execution = False
可能不建议禁用该功能,如 config.yml 描述中所述。它可能会影响性能。
Airflow 尚不支持多租户设置。目前正在 AIP 1 (with sub AIPs 33-34 下进行讨论)。
就是说 - 我不太确定这个问题与您之前描述的问题有何关系。可以为每个客户使用专用的 DAG。它甚至是有意义的,因为一个客户可以回填/清除以前的任务,并且您不希望它给其他客户带来问题。这更像是一个设计决策。我认为这里没有对错之分——这取决于你的组织决定如何工作。
我正在 运行在 Kubernetes 上安装 Airflow v2.2.3。
我有一个专用的调度程序 pod、一个专用的网络服务器 pod,并且我正在使用 Kubernetes 执行器。
我有大约 4,000 个 DAG,在 for 循环中动态创建。
我阅读了 Astronomer post 关于“快速跟随”(也称为“迷你调度程序”)的文章,我想知道是否有通过配置或其他方式禁用它的选项。
问题是,它会受到惩罚,其中:
- 每个任务操作员都在计算动态 DAG,因为每次都有新的执行器 运行ning - 我从未见过 Kubernetes 执行器的重用(如果它使用 pod 的
patch
动词那 - 我猜动态 DAG 无论如何都会重新计算)。 - 重新计算动态 DAG 所花费的时间会导致每个任务都处于“排队”状态 - 这意味着大量时间仅用于一遍又一遍地重新计算 DAG。
- 是否有禁用迷你调度程序的配置(或任何其他方式)?
- 我是不是用错了KubernetesExecutor?它是否应该完成一项以上的任务(因此只在开始时计算 dags)
- 我正在运行设置一个多租户设置,我的每个客户(企业)运行都有自己的 DAG - 但它们看起来都一样(除了输入参数 + 时间表时间)。我应该采取不同的方法吗? (每个客户使用专用 DAG 除外)。
谢谢
回答您的问题:
1。
此功能在 PR 中引入
要禁用 airflow.cfg
中设置的功能:
[scheduler]
schedule_after_task_execution = False
可能不建议禁用该功能,如 config.yml 描述中所述。它可能会影响性能。
Airflow 尚不支持多租户设置。目前正在 AIP 1 (with sub AIPs 33-34 下进行讨论)。 就是说 - 我不太确定这个问题与您之前描述的问题有何关系。可以为每个客户使用专用的 DAG。它甚至是有意义的,因为一个客户可以回填/清除以前的任务,并且您不希望它给其他客户带来问题。这更像是一个设计决策。我认为这里没有对错之分——这取决于你的组织决定如何工作。