Apache Airflow DAG修改未在Web UI生效且日志不更新求助
Apache Airflow DAG修改不生效/日志异常排查方案
1. 验证DAG文件夹配置
- 检查
airflow.cfg中core模块的dags_folder配置,确认路径指向迁移后的etl文件夹,需使用绝对路径(如/home/airflow/etl) - 执行命令验证配置生效:
airflow config get-value core dags_folder - 修复文件夹权限:确保Airflow运行用户(如
airflow)对etl文件夹及内部文件有读权限,执行:chown -R airflow:airflow /path/to/etl chmod -R 755 /path/to/etl
2. 排查DAG解析与加载问题
- 手动验证DAG是否被识别:执行
airflow dags list,若修改后的DAG未出现在列表中,说明文件存在语法错误 - 检查DAG文件语法:运行
python /path/to/etl/your_dag_file.py,直接查看是否有代码报错 - 查看Scheduler日志:在
$AIRFLOW_HOME/logs/scheduler路径下,搜索etl相关的加载警告或错误,确认Scheduler是否监控了新文件夹
3. 重启Airflow进程并清除UI缓存
- 重启Webserver与Scheduler进程(以systemd管理为例):
systemctl restart airflow-webserver systemctl restart airflow-scheduler - 强制刷新浏览器缓存(Ctrl+F5),或清除浏览器缓存后重新打开Airflow UI
4. 数据库与日志配置检查
- 禁止随意执行
airflow db init(会重置数据库),如需同步DAG元数据,执行airflow dags sync强制同步 - 检查日志路径配置:确认
airflow.cfg中base_log_folder路径正确,且Airflow用户有写入权限 - 验证数据库连接:确认
sql_alchemy_conn配置无误,Airflow可正常连接元数据库
5. DAG文件本身检查
- 确保DAG文件名符合要求:仅包含字母、数字、下划线,且为
.py后缀 - 检查
dag_id唯一性:避免与旧DAG重名导致加载冲突 - 确认DAG未被意外禁用:检查
@dag装饰器或schedule_interval配置,确保未设置为None或@daily以外的禁用状态
内容的提问来源于stack exchange,提问作者Subhradip Roy
相关产品推荐
相关产品推荐

