Airflow в Docker: как добавить DAG в Airflow? - PullRequest
0 голосов
/ 16 сентября 2018

Я хочу добавить файлы DAG в Airflow, который работает в Docker в Ubuntu.Я использовал следующий git репозиторий , содержащий конфигурацию и ссылку на образ докера.Когда я запускаю docker run -d -p 8080:8080 puckel/docker-airflow webserver, все работает плавно.Но я не могу найти способ безопасно добавить DAG в Airflow.Кроме того, я запустил docker run -d -p 8080:8080 puckel/docker-airflow webserver -v /root/dags:/usr/local/airflow/dags, но безуспешно.

Я попытался отредактировать /config/airflow.cfg и добавить учетные данные git в репозиторий, содержащий dags, но безуспешно.Также добавлена ​​папка /dags в home/root/dags, содержащая группы обеспечения доступности баз данных, при условии, что эта папка является общей для контейнера Docker.Но успеха тоже нет.

Файл композитора Docker содержит следующие настройки громкости:

webserver:
        image: puckel/docker-airflow:1.10.0-2
        ...
        volumes:
            - ./dags:/usr/local/airflow/dags 

Но когда я добавляю материал в ./dags в папке, из которой запускаю контейнер Docker, группы доступности базы данных непоявляются в Airflow.

Как безопасно добавить группы обеспечения доступности баз данных в Airflow, когда он запускается в Docker?

Ответы [ 4 ]

0 голосов
/ 28 июня 2019

Мой докер + воздушный поток работал хорошо.Каждый добавленный даг может тестировать и работать гладко.

Подходы следующие: 1. выставить весь объем воздушного потока вместо папки dags.

webserver:
        image: puckel/docker-airflow:1.10.0-2
        ...
        volumes:
            - ./airflow:/usr/local/airflow
редактировать конфигурацию папки dags в файле конфигурации воздушного потока (по умолчанию ее не нужно редактировать, так как она находится в папке airflow)

каждый раз, проверять, не появилось ли имя dag, выполнивкоманда:

airflow list_dags

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

удачи.

0 голосов
/ 17 сентября 2018

Я уже некоторое время использую поток воздуха в докере, а загрузка и перезагрузка кода все еще немного ошибочны.Лучшее решение для меня - каждый раз, когда я добавляю новый даг или изменяю код даг, просто перезапускаю весь проект (docker-compose up -d --buid), чтобы веб-сервер, планировщик и работники были в курсе.

0 голосов
/ 21 апреля 2019

Добавление тома - правильный путь

docker run -d -p 8080:8080 -v /path/to/dags/on/your/local/machine/:/usr/local/airflow/dags  puckel/docker-airflow webserver

Полное объяснение описано в следующем посте Марка Нагельберга

0 голосов
/ 17 сентября 2018

По умолчанию в вашей конфигурации воздушного потока есть следующая строка

dags_folder = /usr/local/airflow/dags

Это указывает воздушному потоку загружать пакеты из этой папки, в вашем случае этот путь указывает внутри контейнера.

Убедитесь, что контейнер базы данных запущен и работает и что airflow initdb выполнено. Airflow использует эту базу метаданных для хранения данных.

Насколько мне известно, планировщик воздушного потока загружает каждый такт, поэтому убедитесь, что у вас есть приличный интервал его выполнения:

Кроме того, в вашем файле airflow.cfg (в секундах):

scheduler_heartbeat_sec = 5

Также может быть полезно проверить журналы воздушного потока внутри контейнера на предмет правильного понимания. Вы можете запустить из своей оболочки:

docker logs [container-id | container-name]

Надеюсь, это дало вам некоторое представление о вашей проблеме.

...