按官方教程配置的ZenML流水线未在Airflow UI显示DAG如何解决
ZenML流水线转换Airflow DAG不显示的解决方案
可按照以下步骤逐一排查解决:
- 对齐运行环境依赖
ZenML生成的Airflow DAG要求Airflow Scheduler、Worker的运行环境,和你编写ZenML流水线时的环境完全一致,包括ZenML版本、pandas、lightgbm、scikit-learn等所有第三方依赖的版本都要匹配,否则DAG加载时会触发导入错误,直接不在UI展示。同时要确认你代码中~/airflow/data/leaf.csv的路径在Airflow运行用户的环境下可访问,建议把相对路径替换为绝对路径,避免权限或路径解析问题。 - 核对DAG目录配置
首先检查Airflow配置项dags_folder对应的路径,再确认你激活的ZenML Airflow编排器的输出DAG路径和上述路径一致,如果两者不匹配,ZenML生成的DAG文件不会被Airflow读取。你可以直接进入Airflow的dags目录,查看是否存在ZenML生成的对应流水线DAG文件,若不存在则需调整ZenML编排器的输出路径配置。 - 修改代码运行逻辑
你当前代码末尾直接执行了pipeline.run(),Airflow加载DAG文件时会直接运行这段代码,大概率会触发加载失败。需要把运行逻辑包裹在if __name__ == "__main__"判断下,修改后的代码如下:# 替换原来的run逻辑 if __name__ == "__main__": pipeline = super_mini_pipeline(data_spliter=split_data(), train_evaltor=train_evaltor()) pipeline.run() - 确认编排器已切换
要生成Airflow DAG,需要先把ZenML的默认编排器从本地编排器切换为Airflow编排器,执行命令zenml orchestrator list查看当前激活的编排器,如果不是Airflow,执行zenml orchestrator activate airflow切换后,再运行你的流水线代码生成DAG。 - 排查Airflow加载错误
如果上述操作都完成后还是看不到DAG,可以查看Airflow Scheduler的DAG处理器日志,通常会打印DAG加载失败的具体原因,常见的有文件权限不足、依赖缺失、配置项错误等,修复对应问题后重启Airflow Scheduler即可正常加载。
内容的提问来源于stack exchange,提问作者Cherry Wu
相关产品推荐
相关产品推荐

