Ubuntu 16의 systemd 파일에 Airflow를 설치하는 방법

Ubuntu 16의 systemd 파일에 Airflow를 설치하는 방법

나는 Linux와 그 용어에 익숙하지 않습니다.

에어플로우를 설치했습니다. Airflow 스케줄러 및 웹 서버는 Airflow 스케줄러 및 Airflow 웹 서버-p 8080을 사용하여 작동합니다.

백그라운드에서 실행하고 실패하면 다시 시작할 수 있도록 systemd 파일을 사용하고 싶습니다.

나는 지시를 따르고 있습니다.

https://github.com/apache/incubator-airflow/tree/master/scripts/systemd

다음 서비스 파일을 /etc/systemd/system에 저장했습니다.

  1. airflow webserver.service
  2. airflowscheduler.service

airflowscheduler.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

airflowscheduler.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

몇 가지 문제

  1. postgresql.service, mysql.service, redis.service, Rabbitmq-server.service 서비스를 보장해야 합니까?

  2. ExecStart는 특정 명령을 실행합니다. bin/airflow webserver --pid /run/airflow/webserver.pid가 수행하는 작업, 우분투에서 동일한 작업을 수행하는 방법

  3. Airflow 스케줄러와 Airflow 웹서버 -p 8080을 실행합니다.

어떤 팁이 있나요? ?

감사해요

답변1

postgresql.service, mysql.service, redis.service, Rabbitmq-server.service 서비스를 보장해야 합니까?

Airflow가 이러한 실행 중인 서비스의 조합에 의존하는 경우 적절한 패키지가 설치되어 실행되도록 설정되었는지 확인해야 합니다.

내가 아는 한, After=Wants=지시문은 서비스가 실제로 성공적으로 시작될 것을 요구하지 않으므로 Airflow에서 PostgreSQL과 MySQL을 모두 실행할 필요가 없다면 둘 다 설치할 필요가 없습니다.

ExecStart는 특정 명령을 실행합니다. bin/airflow webserver --pid /run/airflow/webserver.pid해당 명령이 수행하는 작업, 우분투에서 동일한 작업을 수행하는 방법

그러면 Airflow 웹 서버가 시작되고 프로세스의 프로세스 ID(PID)가 저장됩니다 /run/airflow/webserver.pid. Airflow가 설치되어 있다고 가정하면 Ubuntu에서 실행됩니다./bin/airflow

Airflow 스케줄러와 Airflow 웹서버 -p 8080을 실행합니다.

스케줄러는 scheduler.service다음에서 시작됩니다.

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

-p 8080때문에 언급되지 않았습니다포트 8080에서 실행하는 것이 기본 동작입니다..

어떤 팁이 있나요? ?

특정 지시어에 대해 확실하지 않은 경우 systemd다음을 참조하여 해당 지시어가 문서화된 위치를 찾을 수 있습니다.man systemd.directives

일반적인 소개로는 systemd"시스템 관리자를 위한 Systemd" 시리즈를 추천합니다.

관련 정보