You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow WebServer UI显示DAG导入错误但DAG运行正常,求原因排查

Airflow WebServer UI显示导入错误但DAG运行正常的排查

问题描述

我的Airflow WebServer UI显示导入错误(截图如下):
Airflow UI导入错误
但DAG运行完全正常,无任何错误。请问这可能是什么问题?

airflow info 输出信息

Apache Airflow
version                | 2.5.1                                                        
executor               | LocalExecutor                                                
task_logging_handler   | airflow.utils.log.file_task_handler.FileTaskHandler          
sql_alchemy_conn       | postgresql+psycopg2://airflow:xxx@localhost:25011/airflow
dags_folder            | /opt/airflow/dags                                             
plugins_folder         | /opt/airflow/plugins                                          
base_log_folder        | /opt/airflow/logs                                             
remote_base_log_folder |                                                               
                                                                                       

System info
OS              | Linux                                                                                    
architecture    | x86_64                                                                                    
uname           | uname_result(system='Linux', node='hellothere', release='4.18.0-425.10.1.el8_7.x86_64', version='#1 SMP Wed Dec 14 16:00:01 EST 2022', machine='x86_64')
locale          | ('en_US', 'UTF-8')                                                                                                                                        
python_version  | 3.9.13 (main, Nov  9 2022, 13:16:24)  [GCC 8.5.0 20210514 (Red Hat 8.5.0-15)]                                                                             
python_location | /opt/.venv/bin/python                                                                                                                                    
                                                                                                                                                                            

Tools info
git             | git version 2.31.1                                                                         
ssh             | OpenSSH_8.0p1, OpenSSL 1.1.1k  FIPS 25 Mar 2021                                             
kubectl         | NOT AVAILABLE                                                                               
gcloud          | NOT AVAILABLE                                                                               
cloud_sql_proxy | NOT AVAILABLE                                                                               
mysql           | NOT AVAILABLE                                                                               
sqlite3         | 3.26.0 2018-12-01 12:34:55 bf8c1b2b7a5960c282e543b9c293686dccff272512d08865f4600fb58238alt1
psql            | psql (PostgreSQL) 14.7                                                                     
                                                                                                              

Paths info
airflow_home    | /opt/airflow                                                                                                                                                                                                                                                          
system_path     | /opt/.venv/bin:/opt/.server/.vscode-server/bin/97dec172d3256f8ca4bfb2143f3f76b503ca0534/bin/remote-cli:/home/d5291029/.local/bin:/home/d5291029/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/puppetlabs/bin                                             
python_path     | /opt/.venv/bin:/opt/airflow/dags/backend/src:/usr/lib64/python39.zip:/usr/lib64/python3.9:/usr/lib64/python3.9/lib-dynload:/opt/.venv/lib64/python3.9/site-packages:/opt/.venv/lib/python3.9/site-packages:/opt/airflow/dags:/opt/airflow/config:/opt/airflow/plugins
airflow_on_path | True                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                        

Providers info
apache-airflow-providers-cncf-kubernetes | 5.2.1
apache-airflow-providers-common-sql      | 1.3.3
apache-airflow-providers-ftp             | 3.3.0
apache-airflow-providers-http            | 4.1.1
apache-airflow-providers-imap            | 3.1.1
apache-airflow-providers-sqlite          | 3.3.1

进程残留情况

尝试用airflow standalone终止并重启服务后,仍有部分进程残留:

dp-post+ 30859  0.0  0.1 3385112 22688 ?       Ss   05:02   0:00 postgres: DHKPG00011: airflow airflow 127.0.0.1(34514) idle
dp-post+ 30861  0.0  0.1 3385112 22396 ?       Ss   05:02   0:00 postgres: DHKPG00011: airflow airflow 127.0.0.1(34540) idle
dp-post+ 30863  0.0  0.2 3386700 29224 ?       Ss   05:02   0:00 postgres: DHKPG00011: airflow airflow 127.0.0.1(34562) idle
dp-post+ 30865  0.0  0.2 3385112 25216 ?       Ss   05:02   0:00 postgres: DHKPG00011: airflow airflow 127.0.0.1(34582) idle
dp-post+ 30867  0.0  0.2 3386700 29632 ?       Ss   05:02   0:00 postgres: DHKPG00011: airflow airflow 127.0.0.1(34600) idle
dp-post+ 30869  0.0  0.2 3385112 25476 ?       Ss   05:02   0:00 postgres: DHKPG00011: airflow airflow 127.0.0.1(34618) idle
dp-post+ 30895  0.0  0.2 3386840 30460 ?       Ss   05:02   0:00 postgres: DHKPG00011: airflow airflow 127.0.0.1(34796) idle
dp-post+ 30897  0.0  0.2 3386576 27120 ?       Ss   05:02   0:00 postgres: DHKPG00011: airflow airflow 127.0.0.1(34816) idle
dp-post+ 30901  0.0  0.2 3386688 28072 ?       Ss   05:02   0:00 postgres: DHKPG00011: airflow airflow 127.0.0.1(34836) idle
dp-post+ 49292  0.0  0.2 3385848 24976 ?       Ss   05:22   0:00 postgres: DHKPG00011: airflow airflow 10.227.22.152(64509) idle
d5291029 52202  0.0  0.0  12148  1152 pts/7    S+   05:35   0:00 grep --color=auto airflow
d5291029 53845  0.0  1.5 604964 189232 ?       S    Mar08   0:12 gunicorn: master [airflow-webserver]
d5291029 63252  0.0  1.4 609168 173904 ?       S    Mar08   0:00 [ready] gunicorn: worker [airflow-webserver]
d5291029 63253  0.0  1.4 609308 173920 ?       S    Mar08   0:00 [ready] gunicorn: worker [airflow-webserver]
d5291029 63254  0.0  1.4 608260 172752 ?       S    Mar08   0:00 [ready] gunicorn: worker [airflow-webserver]
d5291029 63255  0.0  1.4 607748 172436 ?       S    Mar08   0:00 [ready] gunicorn: worker [airflow-webserver]

可能原因及解决方法

1. WebServer与Scheduler的Python环境不一致

WebServer进程可能未加载指定的虚拟环境(/opt/.venv/bin/python),导致模块导入路径和Scheduler不一致。

  • 解决:手动杀掉所有残留的WebServer进程,再激活虚拟环境重启服务:
    kill 53845 63252 63253 63254 63255
    source /opt/.venv/bin/activate
    airflow webserver --daemon
    

2. DAG导入路径逻辑差异

WebServer加载DAG时的工作目录、导入顺序和Executor执行任务时不同,导致模块找不到。你的python_path包含/opt/airflow/dags/backend/src,但可能存在导入方式问题。

  • 解决:
    • 将DAG中的相对导入改为绝对导入;
    • 确保backend/src目录下存在__init__.py文件,标记为Python可导入包;
    • 先执行airflow dags list验证命令行下的DAG导入状态,确认是否有导入错误。

3. WebServer缓存旧错误状态

Airflow WebServer会缓存DAG的导入结果,即使问题已修复,缓存未更新仍会显示错误。

  • 解决:
    • 彻底杀掉所有WebServer进程后重启;
    • 可清理元数据库中DAG导入错误的记录,或直接重启服务刷新缓存。

4. 旧进程残留导致状态不一致

当前WebServer进程是3月8日启动的,说明airflow standalone未彻底终止旧进程,新服务未生效。

  • 解决:
    pkill -f airflow-webserver
    pkill -f airflow-scheduler
    airflow standalone
    

内容的提问来源于stack exchange,提问作者moth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 15:19:58