文档指定instructions for the integration
我想要的是,每次调度程序停止工作时,它将自己重新启动。通常,我会使用airflow scheduler -D
手动启动它,但有时在没有空时会停止。
阅读文档时,我不确定配置。
GitHub包含以下文件:
airflow
airflow-scheduler.service
airflow.conf
我正在运行Ubuntu 16.04
气流安装在:
home/ubuntu/airflow
我有以下路径:
etc/systemd
文档说:
将它们复制(或链接)到/ usr / lib / systemd / system
将airflow.conf复制到/etc/tmpfiles.d /
什么是tmpfiles.d?
气流文件中的# AIRFLOW_CONFIG=
是什么?
或者换句话说...关于如何做到这一点的更多“脚踏实地”指南?
答案 0 :(得分:2)
将Airflow与systemd文件集成在一起可以轻松监视守护程序,因为systemd可以在失败时重新启动守护程序。这样还可以在系统启动时自动启动气流Web服务器和调度程序。
根据当前配置编辑Airflow Github中airflow
文件夹中的systemd
文件,为AIRFLOW_CONFIG
,AIRFLOW_HOME
和{{1 }}。
将服务文件(扩展名为SCHEDULER
的文件)复制到VM中的.service
。
将/usr/lib/systemd/system
文件复制到/etc/tmpfiles.d/或/usr/lib/tmpfiles.d/。复制airflow.conf
确保使用正确的所有者和权限(airflow.conf
)创建/run/airflow
。检查0755 airflow airflow
是否与气流用户和气流组拥有的/run/airflow
存在,如果它没有创建具有这些权限的airflow:airflow
文件夹。
通过在命令行上发出/run/airflow
来启用此服务,如下所示。
systemctl enable <service>
sudo systemctl enable airflow-webserver
sudo systemctl enable airflow-scheduler
文件应如下所示:
airflow-scheduler.service
答案 1 :(得分:0)
您的问题有一点约会,但我刚刚发现了它,因为目前我对同一主题感兴趣。我认为您的问题的答案就在这里。
答案 2 :(得分:0)
如果你的气流库安装在Python3虚拟环境中,我已经在/opt/python3_venv/
中安装了python3虚拟环境路径
在 profile.d 文件中设置 Airflow Home
sudo vi /etc/profile.d/airflow.sh
export AIRFLOW_HOME=/home/airflow/airflow
export AIRFLOW_CONFIG=/home/airflow/airflow/airflow.cfg
sudo mkdir /run/airflow/
sudo chown -R airflow:airflow /run/airflow
调度系统:
sudo vi /etc/systemd/system/airflow-scheduler.service
[Unit]
Description=Airflow Scheduler daemon
[Service]
User=airflow
Type=simple
ExecStart=/opt/python3_venv/bin/python /opt/python3_venv/bin/airflow scheduler --pid /run/airflow/scheduler.pid
Environment="PATH=/opt/python3_venv/bin:/sbin:/bin:/usr/sbin:/usr/bin"
[Install]
WantedBy=multi-user.target
网络服务器 systemd:
sudo vi /etc/systemd/system/airflow-webserver.service
[Unit]
Description=Airflow Webserver daemon
[Service]
User=airflow
Type=simple
ExecStart=/opt/python3_venv/bin/python /opt/python3_venv/bin/airflow webserver --pid /run/airflow/webserver.pid
Environment="PATH=/opt/python3_venv/bin:/sbin:/bin:/usr/sbin:/usr/bin"
[Install]
WantedBy=multi-user.target