Como instalar o Airflow em arquivos systemd no ubuntu 16

1

Eu não sou muito bom com o linux e seus termos.

Eu instalei o fluxo de ar. Fluxo de ar agendador e webserver trabalho usando o planejador de fluxo de ar & fluxo de ar webserver -p 8080.

Eu quero usar o arquivo systemd, para que ele possa ser executado em segundo plano e, se falhar, reinicie.

Estou seguindo as instruções.

link

Salvei os seguintes arquivos de serviço em / etc / systemd / system

  1. airflow-webserver.service
  2. airflow-scheduler.service

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=ubuntu
Group=airflow
Type=simple
ExecStart=/bin/airflow scheduler -n ${SCHEDULER_RUNS}
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target

airflow-scheduler.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]
EnvironmentFile=/etc/sysconfig/airflow
User=airflow
Group=airflow
Type=simple
ExecStart=/bin/airflow webserver --pid /run/airflow/webserver.pid
Restart=on-failure
RestartSec=5s
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Pouca pergunta

  1. Precisamos garantir que o serviço postgresql.service, mysql.service, redis.service, rabbitmq-server.service

  2. O ExecStart executa um comando específico, o que é o servidor web bin / airflow --pid /run/airflow/webserver.pid, como fazer a mesma coisa no ubuntu

  3. Onde estamos executando o planejador de fluxo de ar & fluxo de ar webserver -p 8080

Alguma dica?

Obrigado

    
por Kppatel Patel 03.03.2017 / 17:15

1 resposta

1

Do we need to make sure service postgresql.service, mysql.service, redis.service, rabbitmq-server.service

Se o Airflow depender de qualquer combinação desses serviços em execução, certifique-se de ter instalado os pacotes apropriados e configurá-los para serem executados.

Até onde sei, as diretivas After= e Wants= não exigem que os serviços realmente sejam bem-sucedidos na inicialização, portanto, você não precisa necessariamente ter o PostgreSQL e o MySQL instalados se o Airflow não requer que ambos estejam em execução.

ExecStart runs specific command, what is bin/airflow webserver --pid /run/airflow/webserver.pid doing, how to do same thing in ubuntu

Isso está iniciando o servidor da Web Airflow e armazenando o ID do processo (PID) do processo em /run/airflow/webserver.pid . Isso funcionará no Ubuntu, supondo que o Airflow esteja instalado em /bin/airflow

Where we are running airflow scheduler & airflow webserver -p 8080

O agendador é iniciado em scheduler.service com

 ExecStart=/bin/airflow scheduler -n ${SCHEDULER_RUNS}

Não há referência a -p 8080 porque em execução na porta 8080 é o comportamento padrão .

Any tips ??

Se você não tiver certeza sobre uma determinada diretiva systemd , poderá pesquisar onde ela está documentada, encontrando-a em man systemd.directives

Para uma introdução geral ao systemd , recomendo a série "Systemd for system administrator"

por 03.03.2017 / 21:57

Tags