Как использовать планировщик воздушного потока с systemd? - PullRequest
0 голосов
/ 23 октября 2018

В документах указаны инструкции по интеграции

Я хочу, чтобы каждый раз, когда планировщик прекращал работать, он перезапускался самостоятельно.Обычно я запускаю его вручную с airflow scheduler -D, но иногда оно останавливается, когда я недоступен.

Чтение документов Я не уверен насчет конфигов.

GitHub содержит следующие файлы:

airflow
airflow-scheduler.service
airflow.conf

Я использую Ubuntu 16.04

Установлен поток воздуха:

home/ubuntu/airflow

У меня есть путь:

etc/systemd

Документы говорят:

Копировать (или связать) их в / usr / lib / systemd / system

  1. Скопировать, какой изфайлы?

скопировать файл airflow.conf в /etc/tmpfiles.d/

Что такое tmpfiles.d?

Что такое # AIRFLOW_CONFIG= в файле воздушного потока?

Или, другими словами ... более подробное руководство о том, как это сделать?

1 Ответ

0 голосов
/ 26 октября 2018

Интеграция Airflow с файлами systemd упрощает наблюдение за вашими демонами, поскольку systemd может позаботиться о перезапуске демона при сбое.Это также позволяет автоматически запускать веб-сервер и планировщик воздушного потока при запуске системы.

Редактировать файл airflow из папки systemd в Airflow Github в соответствии с текущей конфигурацией для установки переменных средыдля AIRFLOW_CONFIG, AIRFLOW_HOME & SCHEDULER.

Скопируйте файлы служб (файлы с расширением .service) в /usr/lib/systemd/system в ВМ.

Скопируйте файл airflow.conf в /etc/tmpfiles.d/ или / usr/lib/tmpfiles.d/.Копирование airflow.conf обеспечивает создание /run/airflow с правами владельца и разрешениями (0755 airflow airflow).Проверьте, существует ли /run/airflow с airflow:airflow, принадлежащим пользователю воздушного потока и группе воздушных потоков, если он не создает папку /run/airflow с этими разрешениями.

Включите эти службы, введя systemctl enable <service> в командной строке, как показанониже.

sudo systemctl enable airflow-webserver
sudo systemctl enable airflow-scheduler

airflow-scheduler.service файл должен быть таким, как показано ниже:

[Unit]
Description=Airflow scheduler daemon
After=network.target postgresql.service mysql.service redis.service rabbitmq-server.service
Wants=postgresql.service mysql.service redis.service rabbitmq-server.service

[Service]
EnvironmentFile=/etc/sysconfig/airflow
User=airflow
Group=airflow
Type=simple
ExecStart=/bin/airflow scheduler
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target
...