Apache Airflow未读取配置DAG目录,仅显示示例DAG求助
Apache Airflow自定义DAG不加载问题排查与解决
可能原因及对应解决方法
1. DAG文件本身存在语法或定义错误
- 直接执行DAG文件验证有效性:
查看终端输出,排查语法错误、依赖包缺失或导入失败等问题。python /home/ubuntu/airflow/dags/your_dag_file.py - 确认文件中存在正确实例化的DAG对象:确保代码中有
dag = DAG(...)的定义,且该变量未被覆盖、未被隐藏在函数内部未导出。
2. 自定义DAG目录/文件权限不足
- 检查目录权限:
确保Airflow运行用户(通常是当前ubuntu用户)拥有该目录及文件的读权限。ls -ld /home/ubuntu/airflow/dags - 调整权限:
chmod -R 755 /home/ubuntu/airflow/dags # 若需要修改所属用户(根据实际运行用户调整) chown -R ubuntu:ubuntu /home/ubuntu/airflow/dags
3. Airflow服务未重启导致配置未生效
修改airflow.cfg后,必须重启scheduler和webserver服务才能加载新配置:
# 直接重启(若未用systemd管理) airflow scheduler restart airflow webserver restart # 若用systemd管理服务 sudo systemctl restart airflow-scheduler sudo systemctl restart airflow-webserver
4. 环境变量覆盖了配置文件设置
Airflow环境变量优先级高于配置文件,检查是否存在覆盖:
echo $AIRFLOW__CORE__DAGS_FOLDER
如果输出不是/home/ubuntu/airflow/dags,说明环境变量已覆盖配置,需清除该变量或修改为目标路径。
同时确认Airflow加载的配置文件路径:
airflow config list --conf-path
确保路径指向/home/ubuntu/airflow/airflow.cfg,避免加载了其他位置的配置文件。
5. DAG文件命名不符合规范
Airflow会忽略隐藏文件(以.开头)和命名不符合规范的文件:
- 确保文件名不以
.开头 - 文件名使用小写字母、数字和下划线,避免特殊字符和空格,例如
nifi_trigger_dag.py
额外排查命令
指定自定义DAG目录列出DAG,验证目录是否被识别:
airflow dags list -S /home/ubuntu/airflow/dags
如果能列出目标DAG,说明是服务未刷新或UI缓存问题;如果仍无结果,回到前面的步骤排查文件本身或权限问题。
内容的提问来源于stack exchange,提问作者Berni Hacker
相关产品推荐
相关产品推荐

