带 Airflow 的 AWS Batch 执行器

AWS Batch executor with Airflow

我目前正在使用 EC2 实例在 Amazon Web 服务上使用气流。最大的问题是实例的平均使用率约为 2%...

我想使用可扩展的体系结构并仅在作业期间创建实例并将其终止。我在路线图上看到 AWS BATCH 应该是 2017 年的执行者,但没有新消息。

您知道是否可以将 AWS BATCH 用作所有气流作业的执行程序吗?

此致, 罗曼.

目前有SequentialExecutor、LocalExecutor、DaskExecutor、CeleryExecutor和MesosExecutor。我听说他们正在研究针对 2.0 的 AIRFLOW-1899,以引入 KubernetesExecutor。因此,看看 Dask 和 Celery,它们似乎不支持按任务创建工人的模式。 Mesos 可能,Kubernetes 应该,但是你必须相应地为工作人员扩展集群,以考虑在 un-needed.

时关闭节点。

我们做了一些工作来获得云形成设置,其中 celery 工作人员根据来自标记工作人员的平均 cpu 负载的 cloud-watch 的指标扩展和缩减。

您需要创建一个能够提交和监控 AWS Batch 作业的自定义执行器( 扩展自 BaseExecutor)。还可能需要为实例创建自定义 Docker 图像。

没有执行器,但是从 1.10 版本开始有一个操作器。在 AWS Batch 上创建执行环境、作业队列和作业定义后,您可以使用 AWSBatchOperator 触发作业。

这里是 source code.

我发现这个存储库在我的案例中运行良好https://github.com/aelzeiny/airflow-aws-executors我正在使用带有计算引擎的 FARGATE_SPOT 批处理作业。

我正在为 AWS CloudWatch 上的日志记录和 AWS 批处理中的 return 状态而苦苦挣扎,但从 Airflow 的角度来看正在工作