между ними - Основные направления кастомизации и существующие инструменты О чем сегодня говорим Про Google Composer: - Возможности - Архитектура - Плюсы/минусы/баги 2
https://github.com/xnuinside https://www.linkedin.com/in/xnuinside/ Можно найти в Телеграмм каналах: @spbpython и @ruarflow Или лично @xnuinside Slack: apache-airflow.slack.com 3
DagBag Все dag созданные в рамках всех DAGfiles внутри одной DagsFolder if settings.DAGS_FOLDER not in sys.path: sys.path.append(settings.DAGS_FOLDER) Все пакеты и скрипты внутри DagsFolder - видимы для импорта в рамках Airlfow Если есть в теле ‘DAG’ и ‘airflow’ - они интерпретируются (предполагая, что это даги) 14
таски, стейты и т.д. Scheduler (DagFileProcessor Manager and etc) Процесс/job-а. Проверяем связки Даг - расписание - даг раны - таск инстансы чтобы решать что запускать. Executor Процесс. Который фактически выполняет код (исполняет логику таски/оператора ). Напрямую зависит от Executora Worker Процесс. Определяющий как будет запускаться воркер, его тип и логику управления воркерами. DAGFolder Храним DAGfile 15
SchedulerJob runs for a specific time interval and schedules the jobs that are ready to run. It figures out the latest runs for each task and sees if the dependencies for the next schedules are met. If so, it creates appropriate TaskInstances and sends run commands to the executor. It does this for each task in each DAG and repeats.
утилитами - Использование возможностей зависимостей Airflow (Celery, Gunicorn and etc.) ** на самом деле тоже не гарантирована совместимость со стороны Airflow, используете настройки на свой страх и риск - Форк 20
hooks, executors, macros, admin_views, flask_blueprints, мenu_links, appbuilder_views, appbuilder_menu_items After the plugin is imported into Airflow, you can invoke it using statement like from airflow.{type, like "operators", "sensors"}.{name specificed inside the plugin class} import * 24
Как ставим: Через свой custom python package или Airflow Plugins Где вызываем? В DAGfile по мере необходимости или в пакетах с операторами и сенсорами (верно для хуков) 30
аналогичный тикет или PR, который не смерджен - откомментите, а лучше пинганите людей из списка мэинтейнеров https://issues.apache.org/jira/projects/AIRFLOW/issues/ - трекер Я хочу фичу / у меня нашелся баг 38
что деплоилось последним и попробовать откатить • Кто-то удалил airflow.cfg с бакета композера. Фикс: сделать фейковый овверайдинг конфига (добавить какие-нибудь не сильно значимые опции, типа, направления отображения дагов в UI https://cloud.google.com/composer/docs/how-to/managing/creating#overriding_airflow_configurations_whe n_creating_an_environment ) 47