我目前正在使用EC2实例在Amazon Web服务上使用airflow。最大的问题是实例的平均使用率约为2%......
我希望使用可扩展的架构并仅在作业期间创建实例并将其终止。我在路线图上看到AWS BATCH在2017年被认为是执行者,但没有新的。
您是否知道是否可以将AWS BATCH用作所有气流作业的执行者?
此致 罗曼。
答案 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 的角度来看是有效的