
나는 Linux와 그 용어에 익숙하지 않습니다.
에어플로우를 설치했습니다. Airflow 스케줄러 및 웹 서버는 Airflow 스케줄러 및 Airflow 웹 서버-p 8080을 사용하여 작동합니다.
백그라운드에서 실행하고 실패하면 다시 시작할 수 있도록 systemd 파일을 사용하고 싶습니다.
나는 지시를 따르고 있습니다.
https://github.com/apache/incubator-airflow/tree/master/scripts/systemd
다음 서비스 파일을 /etc/systemd/system에 저장했습니다.
- airflow webserver.service
- 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
몇 가지 문제
postgresql.service, mysql.service, redis.service, Rabbitmq-server.service 서비스를 보장해야 합니까?
ExecStart는 특정 명령을 실행합니다. bin/airflow webserver --pid /run/airflow/webserver.pid가 수행하는 작업, 우분투에서 동일한 작업을 수행하는 방법
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" 시리즈를 추천합니다.