【问题标题】:Running multiple tasks of one DAG in separate machines in Airflow在 Airflow 的不同机器上运行一个 DAG 的多个任务
【发布时间】:2019-03-26 21:22:14
【问题描述】:

我需要创建一个看起来像这样的 dag-

print_date 任务需要从 服务器 A 运行,模板化 任务需要从 服务器 B 运行。从文档中可以清楚地看出,需要带有 Redis 或 RabbitMq 的 celery。我正在使用 celery 和 Redis(puckel/docker-airflow)。我已经使用 celery 执行器在服务器 B 中运行气流。
我是否也需要在服务器 A 中进行相同的设置? 另外,我将如何将这两个任务连接到一个实际存在于不同服务器中的单个 dag 中? 非常感谢此类用例的示例框架。

【问题讨论】:

  • 我们需要在两台机器上都有 Redis

标签: redis celery airflow


【解决方案1】:

使用气流Queues。当你定义你的任务时,添加一个queue 参数并将它分配给一个特定的队列。

例如,queue1 将只在机器 1 上运行所有任务,而 queue2 将在机器 2 上运行所有任务。

因此您可以将您的任务 A 分配给 queue 1,因此它将在 Machine 1 上运行 并分配

task Bqueue 2,因此它将在 Machine 2

上运行

https://airflow.apache.org/concepts.html#queues查看文档

【讨论】:

  • 所以我已经从两台机器上触发了 dag ??
  • 这并不能解决问题。这只是一个“旁路”。此外,要使用多个队列,必须在任务中明确指定队列
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多