首页 > 解决方案 > 气流调度程序定期抱怨没有心跳

问题描述

有气流(v1.10.5)网络服务器抱怨的问题......

调度程序似乎没有运行。最后一次心跳是在 45 分钟前收到的。

但是检查调度程序守护进程(通过 启动airflow scheduler -D)可以看到...

[airflow@airflowetl airflow]$ cat airflow-scheduler.pid
64186
[airflow@airflowetl airflow]$ ps -aux | grep 64186
airflow   64186  0.0  0.1 663340 67796 ?        S    15:03   0:00 /usr/bin/python3 /home/airflow/.local/bin/airflow scheduler -D
airflow   94305  0.0  0.0 112716   964 pts/4    R+   16:01   0:00 grep --color=auto 64186

一段时间后,错误消息再次消失)。

即使在重新启动网络服务器和调度程序之后,这种情况也经常发生。

airflow-scheduler.err文件是空的,.out 和 .log 文件看起来无害(需要更多时间深入查看)。

在终端中运行调度程序以实时查看提要,一切似乎都运行良好,直到我在 dag 执行中间看到此输出

[2019-11-29 15:51:57,825] {__init__.py:51} INFO - Using executor SequentialExecutor
[2019-11-29 15:51:58,259] {dagbag.py:90} INFO - Filling up the DagBag from /home/airflow/airflow/dags/my_dag_file.py

一旦弹出,我可以在 Web UI 中看到调度程序心跳错误消息出现。(奇怪的是,在这里杀死调度程序进程并不会在 Web UI 中生成心跳错误消息)。检查调度程序进程,我看到...

[airflow@airflowetl airflow]$ ps -aux | grep scheduler
airflow    3409  0.2  0.1 523336 67384 ?        S    Oct24 115:06 airflow scheduler -- DagFileProcessorManager
airflow   25569  0.0  0.0 112716   968 pts/4    S+   16:00   0:00 grep --color=auto scheduler
airflow   56771  0.0  0.1 662560 67264 ?        S    Nov26   4:09 airflow scheduler -- DagFileProcessorManager
airflow   64187  0.0  0.1 662564 67096 ?        S    Nov27   0:00 airflow scheduler -- DagFileProcessorManager
airflow  153959  0.1  0.1 662568 67232 ?        S    15:01   0:06 airflow scheduler -- DagFileProcessorManager

IDK 这是否正常。

任何人都知道这里可能发生了什么或如何解决?


更新

认为问题可能是有未删除的旧调度程序进程仍在运行......

[airflow@airflowetl airflow]$ kill -9 3409 36771
bash: kill: (36771) - No such process
[airflow@airflowetl airflow]$ ps -aux | grep scheduler
airflow   56771  0.0  0.1 662560 67264 ?        S    Nov26   4:09 airflow scheduler -- DagFileProcessorManager
airflow   64187  0.0  0.1 662564 67096 ?        S    Nov27   0:00 airflow scheduler -- DagFileProcessorManager
airflow  153959  0.0  0.1 662568 67232 ?        S    Nov29   0:06 airflow scheduler -- DagFileProcessorManager
airflow  155741  0.0  0.0 112712   968 pts/2    R+   15:54   0:00 grep --color=auto scheduler

注意输出中所有不同的开始时间。

执行kill -9 56771 64187 ...然后重新运行airflow scheduler -D似乎并没有解决问题。

注意:在任务无法将文件从 FTP 位置移动到 HDFS 位置后,调度程序似乎一直停止运行......

hadoop fs -Dfs.mapr.trace=debug -get \
        ftp://$FTP_CLIENT:$FTP_PASS@$FTP_IP/$FTP_DIR"$TABLENAME.TSV" \
        $PROJECT_HOME/tmp/"$TABLENAME.TSV"
# see https://stackoverflow.com/a/46433847/8236733

标签: airflowairflow-scheduler

解决方案


当我使用与AIRFLOW_HOME调度程序不同的网络服务器启动网络服务器时,出现此错误。确保网络服务器和调度程序使用相同的 Airflow 主目录,例如,通过运行

export AIRFLOW_HOME='/path/to/the/airflow_home'

在运行网络服务器和调度程序之前。


推荐阅读