Ofe*_*saf 11 high-availability airflow
如何在高可用性中部署apache气流(正式名称为airbnb的气流)调度程序?
我不是在询问显然应该在高可用性配置中部署的后端数据库或RabbitMQ.
我的主要关注点是调度程序 - 是否有特殊需要做的事情?
Ofe*_*saf 11
经过一番挖掘后,我发现同时运行多个调度程序是不安全的,这意味着开箱即用 - 气流调度程序在高可用性环境中使用是不安全的.
气流团队正计划通过在DAG数据结构上添加锁定机制来解决此问题,但这尚未实现(我通过运行2个调度程序进行检查,并看到他们安排了相同的dag实例,这是不好的).这在此处描述:https: //groups.google.com/forum/#!topic/airbnb_airflow/-1wKa3OcwME
我确实找到了一种方法来解决这个高可用性问题,方法是使用我自己的代码包装调度程序,并使用集群工具进行领导者选举(我个人只是为此目的使用领事).这样,只有当选的主设备正在运行调度程序,当主设备关闭时,从设备将替换他.
当您在高可用性环境中使用气流时请考虑这一点,因为开箱即用,气流调度程序目前不适用于此(除非您自己解决此问题).
编辑 - 主从解决方案的另一种方法是使用集群管理器/调度程序来确保始终只有一个气流调度程序实例可用.这种方法依赖于集群管理器的自我修复能力.例如,mesos和nomad都支持这种配置(我为了简单起见,我主要选择了nomad).
| 归档时间: |
|
| 查看次数: |
4045 次 |
| 最近记录: |