Apache Airflow CLI无DAG显示及任务无法执行问题求助
Apache Airflow CLI 无DAG显示/任务无法执行问题排查思路
确认CLI执行的容器上下文
- Docker部署下,别直接在宿主机跑
airflow命令,得先进入Airflow worker、scheduler或者webserver容器内部,比如执行docker exec -it <airflow-worker-container-id> bash,再在容器里运行airflow dags list - 检查是不是在错误的环境执行,比如宿主机本身没装Airflow,或者用了和容器不一样的配置
- Docker部署下,别直接在宿主机跑
验证DAG解析路径配置
- 在CLI所在容器里查
AIRFLOW__CORE__DAGS_FOLDER环境变量:echo $AIRFLOW__CORE__DAGS_FOLDER,对比Web GUI容器的这个变量是否一致 - 手动检查DAG文件夹权限:
ls -l $AIRFLOW__CORE__DAGS_FOLDER,确保CLI运行的用户(一般是airflow用户)有读权限 - 执行
airflow dags report查看DAG解析状态,看看有没有加载失败的日志
- 在CLI所在容器里查
检查CLI的配置文件指向
- 执行
airflow config list查看核心配置,确认sql_alchemy_conn和Web GUI用的数据库连接字符串完全一致 - 检查有没有自定义配置文件覆盖,比如CLI是不是通过
AIRFLOW_CONFIG环境变量加载了其他配置文件,而非默认的airflow.cfg
- 执行
排查DAG序列化状态
- Airflow 2.x默认用DAG序列化,查数据库里的
dag_serialized表有没有对应记录,CLI的airflow dags list依赖这些序列化数据 - 尝试刷新DAG序列化:
airflow dags reserialize -d <dag-id>,或者重启scheduler容器触发重新序列化
- Airflow 2.x默认用DAG序列化,查数据库里的
检查任务测试的参数正确性
- 跑
airflow task test时,确保<dagid>是DAG的实际ID(注意大小写),日期格式是YYYY-MM-DD的正确格式 - 在CLI容器里手动运行任务脚本,测试能不能正常执行,排除脚本本身的路径依赖问题
- 跑
查看CLI执行的日志输出
- 执行命令时加
-v或--verbose参数,比如airflow dags list -v,看详细错误日志,定位具体问题 - 检查Airflow日志目录(
AIRFLOW__LOGGING__BASE_LOG_FOLDER)下的CLI相关日志
- 执行命令时加
内容的提问来源于stack exchange,提问作者Michel Drenth
相关产品推荐
相关产品推荐

