2016-09-08 2 views
3

공기 흐름이 처음입니다. 데몬 프로세스로 에어 플로우 스케줄러를 실행하려고하지만 프로세스가 더 오래 살지 않습니다. 나는 시작 스케줄러에 대한 명령 다음 airflow.cfg 파일에서 "LocalExecutor"를 구성하고 실행했다. 내가이 명령을 실행하면 (내가 구글 컴퓨 트 엔진을 사용하고 퍼티를 통해 서버에 접근하고있다)공기 흐름 스케줄러를 데몬 프로세스로 실행하는 방법?

airflow scheduler --daemon --num_runs=5 --log-file=/root/airflow/logs/scheduler.log 

를, 공기 흐름 스케줄러 시작하고 I를 내 기류 홈 폴더에있는 airflow- scheduler.pid 파일을 볼 수 있지만 더 이상 생존하지 못합니다. 퍼티에서 세션을 닫고 서버를 다시 연결하면 스케줄러 프로세스를 찾을 수 없습니다. 내가 놓친 게 있니? 데몬 프로세스로 스케줄러를 실행하는 방법?

답변

2

--num-runs=5은 스케줄러가 태스크 인스턴스를 5 번 실행하게합니다. 이 인수를 제거하여 스케줄러를 오래 실행시킬 수 있습니다.

이상적으로 관리자에서 해당 스케줄러를 실행해야 프로세스가 충돌하거나 중지되면 다시 실행됩니다. 여기에 설명 된대로

1

당신은 systemd 또는 벼락 출세를 사용할 수 있습니다 링크가 미래에 어기면 여기 https://github.com/apache/incubator-airflow/tree/master/scripts/upstart

https://github.com/apache/incubator-airflow/tree/master/scripts/systemd 그냥 경우의 지침이다.

제공된 systemd 파일은 RedHat 기반 시스템에서 테스트됩니다. 그것들을/usr/lib/systemd/system 에 복사 (또는 링크)하고 airflow.conf를 /etc/tmpfiles.d/ 또는 /usr/lib/tmpfiles.d/에 복사하십시오. airflow.conf를 복사하면 올바른 소유자와 권한 (0755 기류)으로 이 생성됩니다.

그런 다음 systemctl start를 사용하여 다른 서버를 시작할 수 있습니다. 활성화 서비스/등은/SYSCONFIG/공기 흐름에 기본적으로 환경 설정 점을

systemctl enable [service]을 실행하여 수행 할 수 있습니다. 이 디렉토리의 "airflow"파일을 복사하여 원하는대로 조정할 수 있습니다. SCHEDULER_RUNS 변수를 지정하십시오.

사소한 변경 사항은 다른 시스템 시스템에서도 작동합니다.

당신은 당신의 환경을/etc/SYSCONFIG/공기 흐름 파일의

내용을 반영하기 위해 구성 파일 아래에 제공 수정할 수 있습니다

# This file is the environment file for Airflow. Put this file in /etc/sysconfig/airflow per default 
# configuration of the systemd unit files. 
# 
# AIRFLOW_CONFIG= 
# AIRFLOW_HOME= 
# 
# required setting, 0 sets it to unlimited. Scheduler will get restart after every X runs 
SCHEDULER_RUNS=5 

/etc/tmpfiles.d/airflow.conf의 내용 또는 의

D /run/airflow 0755 airflow airflow

파일 내용을 /usr/lib/tmpfiles.d/airflow.conf

[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 -n ${SCHEDULER_RUNS} 
KillMode=process 
Restart=always 
RestartSec=5s 

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

/usr/lib/systemd/system/airflow-scheduler.service 당신이이 질문에 대한 대답 관련된 정보를 포함하는 미래에 깰 수있는 링크, 그것은 매우 유용 할 것이다 당신의 대답. – cavpollo

+1

의견을 보내 주셔서 감사합니다, cavpollo. 관련 정보를 모두 추가했습니다. –

관련 문제