MJK*_*MJK 5 scheduler google-compute-engine airflow
我是Airflow的新手。我正在尝试将气流调度程序作为守护进程运行,但是该进程不会存在很长时间。我在airflow.cfg文件中配置了“ LocalExecutor”,并运行以下命令来启动调度程序。(我正在使用Google计算引擎,并通过PuTTY访问服务器)
airflow scheduler --daemon --num_runs=5 --log-file=/root/airflow/logs/scheduler.log
Run Code Online (Sandbox Code Playgroud)
当我运行此命令时,气流调度程序将启动,并且可以在我的气流主文件夹中看到airflow-scheduler.pid文件,但是该过程不会持续很长时间。当我关闭PuTTY会话并重新连接到服务器时,找不到调度程序进程。我想念什么吗?如何将气流调度程序作为守护进程运行?
小智 8
我有一个类似的问题。当我作为守护进程执行调度程序时,我的气流调度程序没有继续作为守护进程运行:
airflow scheduler -D
Run Code Online (Sandbox Code Playgroud)
但是当我正常运行时,调度程序确实起作用了。在我删除了airflow-scheduler.err 文件并将调度程序作为守护进程重新运行后,它开始工作:
rm airflow-scheduler.err
airflow scheduler -D
Run Code Online (Sandbox Code Playgroud)
您可以按照以下说明使用systemd或upstart:
https://github.com/apache/incubator-airflow/tree/master/scripts/systemd https://github.com/apache/incubator-airflow/tree/master/scripts/upstart
以下说明是为了防止将来链接中断。
提供的systemd文件已在基于RedHat的系统上进行了测试。将它们复制(或链接)到/ usr / lib / systemd / system并将airflow.conf复制到/etc/tmpfiles.d/或/usr/lib/tmpfiles.d/。复制airflow.conf可确保使用正确的所有者和权限创建/ run / airflow(0755 airflow airflow)
然后,您可以使用systemctl start启动其他服务器。启用服务可以通过发出
systemctl enable [service]
默认情况下,环境配置指向/ etc / sysconfig / airflow。您可以在此目录中复制“气流”文件,并根据自己的喜好进行调整。确保指定SCHEDULER_RUNS变量。
通过一些小的更改,它们可能会在其他系统系统上工作。
您可以修改下面提供的配置文件以反映您的环境
/ etc / sysconfig / airflow文件的内容
# 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
Run Code Online (Sandbox Code Playgroud)
/etc/tmpfiles.d/airflow.conf或/usr/lib/tmpfiles.d/airflow.conf文件的内容
D /run/airflow 0755 airflow airflow
/usr/lib/systemd/system/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 -n ${SCHEDULER_RUNS}
KillMode=process
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
--num-runs=5将使调度程序运行任务实例 5 次。您可以删除该参数以使调度程序长时间运行。
理想情况下,您应该在主管下运行该调度程序,因此当进程崩溃/停止时,它将重新运行。
| 归档时间: |
|
| 查看次数: |
4227 次 |
| 最近记录: |