Airflow(K8s环境):已删除文件引发DAG导入错误求助
Airflow DAG导入错误(已删除文件)排查与清除方案
核心背景说明
Airflow的webserver、scheduler组件不会在本地保留已删除的DAG文件副本,但元数据库(如PostgreSQL/MySQL)会持久化存储DAG的导入错误记录,这就是你看到旧文件错误提示的原因。
具体解决步骤
1. 清除元数据库中的错误记录
- 精准清除单条错误:进入Airflow元数据库实例,执行SQL语句:
DELETE FROM import_error WHERE filename = '/opt/airflow/dags/repo/dags/utils/callbacks.py'; - 批量清除所有导入错误:在Airflow的webserver或scheduler Pod内执行CLI命令:
airflow db clean --clean-import-errors
2. 强制触发DAG重新解析
- 重启scheduler和webserver Pod,让组件重新扫描DAG目录:
kubectl delete pod -n <你的Airflow命名空间> -l component=scheduler kubectl delete pod -n <你的Airflow命名空间> -l component=webserver - 也可以直接在Airflow UI顶部点击「刷新DAGs」按钮触发扫描。
3. 验证同步与依赖状态
- 检查git-sync sidecar日志,确认代码已同步到PVC:
kubectl logs -n <你的Airflow命名空间> <目标Pod名称> -c git-sync - 排查是否有其他DAG文件仍在引用已删除的
callbacks.py,这是常见的隐性依赖问题。
内容的提问来源于stack exchange,提问作者ub-
相关产品推荐
相关产品推荐

