如何去除气流中不需要的破损DAG

时间:2019-07-26 01:12:02

标签: airflow

我在sql_test.py中写错了,然后运行python sql_test.py,错误是“没有名为xxx的模块”,并且在web-ui中显示红色错误-损坏的DAG。 然后运行airflow list_dags,再次发生相同的错误。这很奇怪,我不知道发生了什么。 我尝试运行airflow delete_dags sql_test,但没有这样的ID。 我怎么能:

  1. 消除web-ui中的缺陷
  2. sql_test中提取list_dags

2 个答案:

答案 0 :(得分:0)

您的dag定义文件中存在一些语法错误,导致解析DAG失败。当Airflow无法解析DAG时,一些功能将被破坏(例如.first


当然,删除有问题的dag-definition文件可以解决该问题,但这不是解决方案。因此,您可以通过以下方式了解问题所在并加以解决

  • 从linux shell转到Airflow's logs folder

    class MyBanana { } let bananas = [MyBanana?]() let first: MyBanana? = bananas.first

  • 运行tree command来查看目录结构

    list_dags

  • 您对应的损坏数据的日志文件的
  • View the last few lines

    cd $AIRFLOW_HOME/logs/scheduler/latest/

这将为您提供Airflow在尝试解析损坏的dag文件时抛出的堆栈跟踪。希望可以帮助您诊断问题并进行修补。


您的dag定义文件一旦修复

  • tree -I "__init__.py|__pycache__|*.pyc"消息将从用户界面中消失
  • DAG将出现在UI中(刷新几次)
  • tail -n 25 /path/to/my/broken-dag.py.log命令也将开始工作

答案 1 :(得分:0)

如果您不想修复DAG并忽略它,则可以通过在.airflowignore文件中指定DAG的基础文件来删除不需要的DAG。