带有Airflow的AWS Batch执行程序

时间:2018-01-29 11:15:16

标签: airflow

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

我希望使用可扩展的架构并仅在作业期间创建实例并将其终止。我在路线图上看到AWS BATCH在2017年被认为是执行者,但没有新的。

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

此致 罗曼。

4 个答案:

答案 0 :(得分:3)

没有执行程序,但是从1.10版本开始可以使用运算符。在AWS Batch上创建执行环境,作业队列和作业定义后,可以使用AWSBatchOperator来触发作业。

这里是source code

答案 1 :(得分:2)

目前有一个SequentialExecutor,一个LocalExecutor,一个DaskExecutor,一个CeleryExecutor和一个MesosExecutor。我听说他们正在研究针对2.0的AIRFLOW-1899引入KubernetesExecutor。因此,看看Dask和Celery,它们似乎并不支持每个任务创建工作者的模式。 Mesos可能,Kubernetes应该,但是你必须相应地扩展工作人员的集群,以便在不需要时关闭节点。

我们做了一些工作来实现云形成设置,芹菜工作者根据云观察标记工作人员平均CPU负载的指标进行扩展。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

我只是在处理 AWS CloudWatch 上的日志记录和 AWS 批处理中的返回状态问题,但从 Airflow 的角度来看是有效的