如何在Systemd中使用Airflow Scheduler?

Pro*_*120 7 airflow

该文档指定了集成说明

我想要的是,每次调度程序停止工作时,它将自己重新启动。通常,我使用手动启动它,airflow scheduler -D但有时在不可用时停止。

阅读文档时,我不确定配置。

GitHub上包含以下文件:

airflow
airflow-scheduler.service
airflow.conf
Run Code Online (Sandbox Code Playgroud)

我正在运行Ubuntu 16.04

气流安装在:

home/ubuntu/airflow
Run Code Online (Sandbox Code Playgroud)

我有以下路径:

etc/systemd
Run Code Online (Sandbox Code Playgroud)

该文档说:

将它们复制(或链接)到/ usr / lib / systemd / system

  1. 复制哪个文件?

将airflow.conf复制到/etc/tmpfiles.d/

  1. 什么是tmpfiles.d?

  2. 什么是# AIRFLOW_CONFIG=在气流文件?

或者换句话说...关于如何做到这一点的更多“脚踏实地”指南?

kax*_*xil 5

将Airflow与systemd文件集成在一起可以轻松监视守护程序,因为systemd可以在失败时重新启动守护程序。这也使系统启动时能够自动启动气流Web服务器和调度程序。

编辑airflow从文件systemd夹中的气流Github上按照当前的配置来设置环境变量AIRFLOW_CONFIGAIRFLOW_HOMESCHEDULER

将服务文件(带有.service扩展名的文件)复制到/usr/lib/systemd/systemVM中。

airflow.conf文件复制到/etc/tmpfiles.d/或/usr/lib/tmpfiles.d/。复制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
Run Code Online (Sandbox Code Playgroud)

airflow-scheduler.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=airflow
Group=airflow
Type=simple
ExecStart=/bin/airflow scheduler
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

  • 另一个问题:如果将气流安装在本地虚拟环境中与全局安装,使用 systemd 是否有区别? (2认同)

归档时间:

查看次数:

1628 次

最近记录:

6 年 前