【问题标题】:Airflow will keep showing example dags even after removing it from configuration即使从配置中删除,Airflow 仍将继续显示示例 dag
【发布时间】:2017-06-28 14:52:36
【问题描述】:

即使我在配置文件中关闭了load_examples = False,气流示例 dag 仍保留在 UI 中。

系统通知 dag 不存在于 dag 文件夹中,但它们仍保留在 UI 中,因为调度程序已在元数据数据库中将其标记为活动。

我知道从那里删除它们的一种方法是直接删除数据库中的这些行,但当然这并不理想。我应该如何继续从 UI 中删除这些 dag?

【问题讨论】:

    标签: airflow apache-airflow


    【解决方案1】:

    除了手动删除数据库中的相应行外,目前无法阻止已删除的 DAG 在 UI 上显示。唯一的其他方法是在 initdb 之后重新启动服务器。

    【讨论】:

      【解决方案2】:

      气流 1.10+:

      • 编辑airflow.cfg 并设置load_examples = False
      • 对于每个示例 dag,运行命令 airflow delete_dag example_dag_to_delete

      这样可以避免重置整个气流数据库。

      (从 Airflow 1.10 开始有从数据库中删除 dag 的命令,参见this answer

      【讨论】:

        【解决方案3】:

        假设您已通过 Anaconda 安装气流。 否则在您的 python 站点包文件夹中查找气流并按照以下说明操作。

        按照https://stackoverflow.com/a/43414326/1823570的说明操作后

        • 转到 $AIRFLOW_HOME/lib/python2.7/site-packages/airflow 目录
        • 删除名为 example_dags 的目录或将其重命名为恢复原状
        • 重新启动您的网络服务器

        cat $AIRFLOW_HOME/airflow-webserver.pid | xargs 杀死 -9

        气流网络服务器 -p [端口号]

        【讨论】:

        • 不会airflow initdb 重启整个数据库吗?这个气流实例已经在生产中,我已经有来自正在运行的 Dags 的历史数据。我一直在寻找可以解决问题的解决方案,但试图避免从头开始。
        • 我认为你可以避免这一步。不过没试过。
        • 是的,我也是。遵循与您类似的方法。
        • 嘿,airflow resetdb 清理了我所有的工作,但是,我在运行 resetdb 后在 UI 中看到了错误。我无法访问 UI 中的任何内容。请查收:stackoverflow.com/questions/52675779/…
        【解决方案4】:

        airflow resetdb 肯定在这里工作。

        我所做的是为各种目的创建多个 shell 脚本,例如启动 webserver、启动调度程序、刷新 dag 等。我只需要运行脚本来做我想做的事。这是列表:

        (venv) (base) [pchoix@hadoop02 airflow]$ cat refresh_airflow_dags.sh
        #!/bin/bash
        cd ~
        source venv/bin/activate
        airflow resetdb
        (venv) (base) [pchoix@hadoop02 airflow]$ cat start_airflow_scheduler.sh
        #!/bin/bash
        cd /home/pchoix
        source venv/bin/activate
        cd airflow
        nohup airflow scheduler >> "logs/schd/$(date +'%Y%m%d%I%M%p').log" &
        (venv) (base) [pchoix@hadoop02 airflow]$ cat start_airflow_webserver.sh
        #!/bin/bash
        cd /home/pchoix
        source venv/bin/activate
        cd airflow
        nohup airflow webserver >> "logs/web/$(date +'%Y%m%d%I%M%p').log" &
        (venv) (base) [pchoix@hadoop02 airflow]$ cat start_airflow.sh
        #!/bin/bash
        cd /home/pchoix
        source venv/bin/activate
        cd airflow
        nohup airflow webserver >> "logs/web/$(date +'%Y%m%d%I%M%p').log" &
        nohup airflow scheduler >> "logs/schd/$(date +'%Y%m%d%I%M%p').log" &
        

        不要忘记chmod +x 这些脚本

        希望对您有所帮助。

        【讨论】:

          猜你喜欢
          • 2017-09-17
          • 1970-01-01
          • 1970-01-01
          • 2022-12-23
          • 2014-12-09
          • 2021-11-20
          • 2017-09-17
          • 2014-09-08
          • 1970-01-01
          相关资源
          最近更新 更多