Исполнительный исполнитель AWS с Airflow

В настоящее время я использую воздушный поток на веб-сервисах Amazon с использованием экземпляров EC2. Большая проблема заключается в том, что среднее использование экземпляров составляет около 2%...

Я бы хотел использовать масштабируемую архитектуру и создавать экземпляры только на время работы и убить ее. Я видел на дорожной карте, что AWS BATCH предположил, что будет исполнителем в 2017 году, но ничего нового об этом.

Знаете ли вы, можно ли использовать AWS BATCH в качестве исполнителя для всех заданий воздушного потока?

С уважением, Ромен.

Ответ 1

В настоящее время существует последовательный исполнитель, локальный эксперт, DaskExecutor, CeleryExecutor и MesosExecutor. Я слышал, что они работают над AIRFLOW-1899, нацеленным на 2.0, чтобы представить KubernetesExecutor. Итак, глядя на Dask и Celery, похоже, что они не поддерживают режим, когда их работники создаются на одну задачу. Возможно, Мезос мог бы подумать, Кубернетес, но тогда вам придется масштабировать кластеры для рабочих, соответственно, чтобы отключить узлы, когда они не нужны.

Мы сделали небольшую работу, чтобы получить настройку образования облаков, где работники сельдерея масштабируются и в зависимости от показателей от облачных наблюдений средней загрузки процессора через помеченных работников.

Ответ 2

Вам нужно будет создать пользовательский Executor (расширенный от BaseExecutor), способный отправлять и отслеживать задания пакетной обработки AWS. Также может потребоваться создать пользовательское изображение Docker для экземпляров.

Ответ 3

Исполнителя нет, но оператор доступен из версии 1.10. После создания среды выполнения, очереди заданий и определения заданий в AWSBatchOperator AWS вы можете использовать AWSBatchOperator для запуска Джобса.

Вот исходный код.