airflow - 气流调度程序定期抱怨没有心跳
问题描述
有气流(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
解决方案
当我使用与AIRFLOW_HOME
调度程序不同的网络服务器启动网络服务器时,出现此错误。确保网络服务器和调度程序使用相同的 Airflow 主目录,例如,通过运行
export AIRFLOW_HOME='/path/to/the/airflow_home'
在运行网络服务器和调度程序之前。
推荐阅读
- reactjs - TypeError:无法读取未定义的属性“推送”(React-Router-Dom)
- swift - 当“样式”不是“默认”时,为什么不使用按钮自定义字体?
- angular - 我想在不使用任何库的情况下使用 Angular 实现产品轮播功能
- bash - bash/shell - 如何获取 RHEL 上目录的组名并将其保存到变量中?
- typescript - 如何在 Electron 15 中将 webContents 声明为 TypeScript
- python - 如何将查询从远程数据库 mysql 复制到文件中
- google-forms - Google 表单能否生成另一个 Google 表单
- sql - 如何按包含 Presto 列表的列过滤数据框?
- php - Laravel 和 PostgreSQL 的行级安全性
- c# - 处理测试类中的依赖注入