gpt4 book ai didi

high-availability - Airflow 设置以实现高可用性

转载 作者:行者123 更新时间:2023-12-04 02:04:41 96 4
gpt4 key购买 nike

如何在高可用性中部署 apache Airflow (正式称为 airbnb 的 Airflow )调度程序?

我不是在询问显然应该在高可用性配置中部署的后端 DB 或 RabbitMQ。

我的主要关注点是调度程序 - 有什么特别需要做的吗?

最佳答案

经过一番挖掘,我发现同时运行多个调度程序是不安全的,这意味着开箱即用 - 在高可用性环境中使用 Airflow 调度程序是不安全的。

Airflow 团队计划通过在 DAG 数据结构上添加锁定机制来解决这个问题,但这还没有实现(我通过运行 2 个调度程序进行检查,发现它们调度了相同的 dag 实例,这并不好)。
这是在此处描述的:
https://groups.google.com/forum/#!topic/airbnb_airflow/-1wKa3OcwME

我确实找到了一种方法来解决这个高可用性问题,方法是用我自己的代码包装调度程序并使用集群工具进行领导者选举(我个人为此使用了 consul)。 This way only the elected master is running the scheduler and when the master is down the slave replaces him.

当您在高可用性环境中使用 Airflow 时,请考虑这一点,因为开箱即用, Airflow 调度程序目前不适合于此(除非您自己解决此问题)。

编辑 - 主从解决方案的另一种方法是使用集群管理器/调度程序来确保只有一个 Airflow 调度程序实例始终可用。这种方法依赖于您拥有的集群管理器的自我修复能力。例如,mesos 和 nomad 都支持这种配置(我个人选择了 nomad,因为它的简单性)。

关于high-availability - Airflow 设置以实现高可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39572079/

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