Apache Airflow v2.2.0新DAG无法在Web UI加载的问题求助
检查DAG文件语法与运行异常
直接执行DAG文件或者用airflow dags test <dag_id> 2023-01-01测试,看是否有语法错误或未捕获的异常。CLI仅解析DAG结构,但Web UI加载时会执行DAG内的代码,任何运行时错误都会导致DAG无法在UI展示。确认
dag_id唯一性
用airflow dags list | grep <dag_id>检查是否有重复的dag_id,重复ID会导致Web UI无法正常显示对应DAG。重启Airflow服务
调度器或Webserver的缓存可能导致DAG不加载,先检查服务状态:systemctl status airflow-scheduler airflow-webserver若服务运行异常或无报错,直接重启:
systemctl restart airflow-scheduler airflow-webserver验证DAG目录配置与权限
用airflow config get-value core dags_folder确认配置的DAG目录路径,再检查Webserver和调度器进程是否有该目录的读取权限:ls -ld $(airflow config get-value core dags_folder)权限不足的话,调整目录权限为
755并确保所属组为Airflow运行用户。检查DAG激活状态与UI筛选器
用airflow dags show <dag_id>查看is_active字段是否为True,若为False,执行airflow dags unpause <dag_id>启用DAG。同时检查Web UI顶部的标签筛选器,是否误选了过滤条件导致DAG被隐藏。清理元数据库缓存
若元数据存在异常,可删除对应DAG记录后重新加载:- 进入Airflow数据库(以PostgreSQL为例):
psql -U airflow airflow - 删除DAG记录:
DELETE FROM dag WHERE dag_id = '<你的dag_id>'; - 退出数据库后重启Airflow服务,等待DAG重新解析入库。
- 进入Airflow数据库(以PostgreSQL为例):
查看Webserver日志排查细节
查看Webserver日志(默认在$AIRFLOW_HOME/logs/webserver),搜索目标dag_id,定位加载失败的具体原因,比如依赖缺失、文件权限问题等。
内容的提问来源于stack exchange,提问作者esimo

