气流:网络服务器找不到新的DAG

Oll*_*ass 11 airflow airflow-scheduler

在Airflow中,我该如何处理错误"此DAG在Web服务器DagBag对象中不可用.它显示在此列表中,因为调度程序在元数据库中将其标记为活动"?

我已经将新的DAG复制到Airflow服务器,并尝试过:

调度程序日志显示正在处理它并且没有发生错误,我可以通过CLI与它进行交互并查看它的状态,但它仍然没有出现在Web UI中.

编辑:Web服务器和调度程序在具有相同airflow.cfg的同一台计算机上运行.他们没有在Docker中运行.

它们由Supervisor运行,Supervisor以同一个用户(气流)运行它们.气流用户对所有dag文件具有读,写和执行权限.

vir*_*iru 6

这帮助了我...

pkill -9 -f "airflow scheduler"

pkill -9 -f "airflow webserver"

pkill -9 -f "gunicorn"
Run Code Online (Sandbox Code Playgroud)

然后重新启动气流调度程序和网络服务器。


jus*_*ile 5

我自己刚遇到这个问题。更改权限,重置元数据库,重新启动Web服务器甚至进行一些潜在的代码更改以纠正这种情况后,都没有发生。

但是,我注意到,即使我们正在停止Web服务器,但我们的gunicorn进程仍在运行。终止这些过程,然后开始备份所有一切,均获得了成功


Pri*_*hta 0

如果调度程序、webUI 和命令行界面的airflow_home - dags_folder 配置参数相同,则这是错误的唯一原因:

This DAG isn't available in the webserver DagBag object
Run Code Online (Sandbox Code Playgroud)

可能是文件权限或 python 脚本中的错误。

请检查

  • 像普通 python 脚本一样运行 dag 并检查错误
  • airflow.cfg 中的用户和创建 dag 的用户应该相同,或者 dag 应该具有airflow 用户的执行权限