【问题标题】:How to run resource intensive tasks with Airflow如何使用 Airflow 运行资源密集型任务
【发布时间】:2018-08-28 23:57:16
【问题描述】:

我们有一个长时间运行 (3h) 的模型训练任务,每 3 天运行一次,而较小的预测管道每天运行一次。 对于这两种情况,我们都使用 Jenkins + EC2 插件来启动大型实例(工作者)并在它们上运行管道。这有两个目的:

  1. 保持管道隔离。因此,每个管道都有一个实例的所有资源。
  2. 我们节省成本。大型实例只运行几个小时,而不是 24/7

使用 Jenkins + EC2 插件,我不负责将代码复制到工作人员并报告执行结果。 Jenkins 是在幕后做的。

有没有办法通过 Airflow 实现相同的行为?

【问题讨论】:

    标签: amazon-web-services machine-learning airflow


    【解决方案1】:

    Airflow 1.10 发布了一系列新的 AWS 集成,为您提供了一些在 AWS 上执行此类操作的选项。

    https://airflow.apache.org/integration.html#aws-amazon-web-services

    如果您在容器化设置中运行任务,听起来 ECSOperator 或 KubernetesPodOperator 可能是您所需要的(如果您使用的是 Kubernetes)。

    【讨论】:

    • 我猜 aws batch 在这里可能是更好的选择。在这两种情况下,我都需要先对代码进行 docker 化,这也意味着部署过程更加复杂。
    猜你喜欢
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 2020-06-21
    • 2022-08-03
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多