【问题标题】:Airflow task run on all nodesAirflow 任务在所有节点上运行
【发布时间】:2017-10-19 11:30:54
【问题描述】:

我有使用 celery 和 redis 的气流集群。我有一项任务要在所有工人身上运行。我该怎么做?

原因:我们正在根据工作人员负载添加和减少气流工作人员。我必须在所有节点上运行一项任务。

感谢您的帮助。

【问题讨论】:

  • 我实际上希望实现类似的东西.. 你有没有找到任何东西@kppatel?
  • 不,我还在使用 cron
  • 你找到解决办法了吗?
  • 为了我们的目的,我们使用 cron。它运行了过去 3 年,没有任何问题。但是我们的后台任务占用的空间要小得多。如果您有固定数量的命名工作者,那么您可以创建一个气流任务来运行每个气流工作者。

标签: airflow


【解决方案1】:

听起来您正在尝试监控 Airflow 集群中的工作程序节点,如果工作程序处于高负载状态,则增加工作程序节点/执行程序?这是你想要做的吗?

如果是这样,我认为这种工作应该由其他工具来管理,比如 Jenkins + Ansible。

如果没有,请忽略此问题或使用更多信息更新您的问题。

【讨论】:

  • 我不是要监控气流工作人员,气流确实允许我们监控节点。但是,我无法在所有节点中运行某些任务。例如 VPN 连接可能会在一段时间后中断,我们想运行重新连接到 VPN 的 sh 文件,但我想在所有节点上都这样做,而不是在一个随机节点上。
  • 我不认为气流旨在解决您提到的那种任务。我认为您知道该任务是由工作节点中的执行程序执行的,因此您要做的是将任务分配给每个工作程序的一个执行程序,这不是气流的工作方式。尝试 Cron 或 Jenkins+Ansible 可能更容易实现。
  • 如果这是正常的事情,我同意你的看法。但我需要运行它以获得气流支持。否则,我的气流刚刚开始失败的任务。我目前正在使用 cron。但是,我想知道是否有比基本 cron 作业更好的解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
  • 2021-08-07
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
  • 2020-06-21
  • 1970-01-01
相关资源
最近更新 更多