системный файл apache-airflow с использованием conda env - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь запустить apache-airflow для файла Ubuntu 16.04, используя systemd.Я примерно следовал этому учебнику и установил / установил следующее:

  • Miniconda 2, 64-бит
  • Установлен gcc (sudo apt-get install gcc)
  • Среда Conda с использованием файла yml учебного пособия

В следующей среде conda:

  • export AIRFLOW_HOME = "/ home / ubuntu / airflow"

Когда я тестирую Airflow, все работает нормально:

airflow webserver --port 8080

Но всякий раз, когда я пытаюсь запустить воздушный поток с помощью системного файла, происходит сбой.Насколько я понимаю, в файле systemd используется среда conda.Мой системный файл выглядит следующим образом:

[Unit]
Description=Airflow webserver daemon

[Service]
User=ubuntu
Group=ubuntu
Type=simple
ExecStart=/home/ubuntu/miniconda2/envs/airflow-tutorial/bin/airflow webserver --port 8080
Restart=on-failure
RestartSec=5s
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Когда я запускаю / включаю демон systemd, статус возвращает следующую ошибку:

airflow-webserver.service - Airflow webserver daemon
   Loaded: loaded (/etc/systemd/system/airflow-webserver.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Thu 2018-09-13 08:59:00 UTC; 1s ago
  Process: 18410 ExecStart=/home/ubuntu/miniconda2/envs/airflow-tutorial/bin/airflow webserver --port 8080 (code=exited, status=1/FAILURE)
 Main PID: 18410 (code=exited, status=1/FAILURE)

Sep 13 08:59:00 ip-172-31-46-255 systemd[1]: airflow-webserver.service: Main process exited, code=exited, status=1/FAILURE
Sep 13 08:59:00 ip-172-31-46-255 systemd[1]: airflow-webserver.service: Unit entered failed state.
Sep 13 08:59:00 ip-172-31-46-255 systemd[1]: airflow-webserver.service: Failed with result 'exit-code'.

Помощь очень важна!

Ответы [ 2 ]

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

Одно совершенно другое, но гораздо более простое решение, которое сработало для меня:

  1. Добавить нового пользователя sudo с правами sudo, например airflow
  2. Установить apache-airflow в среде как airflow пользователь
  3. Запустить демон воздушного потока, используя: airflow webserver --port 8080 -D

Это запускает поток воздуха как фоновый процесс демона. Вы можете просто переключиться назад на другого пользователя и продолжить создавать ярлыки и т. Д.

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

Ниже указано airflow-webserver.service, которое работает для меня в виртуальной среде:

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

[Service]
PIDFile=/run/airflow/webserver.pid
EnvironmentFile=/etc/default/airflow
User=airflow
Group=airflow
Type=simple
ExecStart=/usr/bin/bash -c 'source /usr/local/airflow/venv/bin/activate ; airflow webserver --pid /run/airflow/webserver.pid'
Restart=on-failure
RestartSec=5s
PrivateTmp=true

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