1. ホーム
  2. python-2.7

[解決済み] airflow Webサーバを再起動するにはどうすればよいですか?

2022-02-19 04:57:09

質問内容

データパイプラインのプロジェクトにAirflowを使用しています。私はairflowで私のプロジェクトを構成し、次のコマンドを使用してバックエンドプロセスとしてairflowサーバを開始しました。

airflow webserver -p 8080 -D True

バックエンドでサーバーが正常に動作しています。Airflowで認証を有効にしたいのでairflow.cfgで設定を変更したのですが、認証機能がサーバーに反映されないのです。
私のサーバーのデーモンAirflow Webサーバープロセスを再起動するにはどうすればよいですか?

解決方法は?

私は、systemdによる自動回復で、airflowを堅牢に実行することを助言します。
ができるように。
- を開始します。 systemctl start airflow
- 停止する systemctl stop airflow
- をクリックすると再起動します。 systemctl restart airflow
このためには systemd の 'ユニット' ファイルが必要です。 (作業) の例として、以下を使うことができます。
put it in /lib/systemd/system/airflow.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=/home/airflow/airflow.env
User=airflow
Group=airflow
Type=simple
ExecStart=/bin/bash -c 'export AIRFLOW_HOME=/home/airflow ; airflow webserver --pid /run/airflow/webserver.pid'
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
Restart=on-failure
RestartSec=42s
PrivateTmp=true
[Install]
WantedBy=multi-user.target

追記:AIRFLOW_HOMEは、エアフローのフォルダとコンフィグを格納する場所に変更します。