【问题标题】:Airflow dags are not recognised when running the webserver as a daemon将 Web 服务器作为守护进程运行时无法识别 Airflow dag
【发布时间】:2018-10-01 15:23:21
【问题描述】:

我正在尝试在 ubuntu 服务器上设置气流。我写了一些 dags,当我用airflow test <dag_id> <task_id> 测试它们时,它们似乎工作正常。我使用以下命令将气流作为守护进程运行

airflow webserver -p 8080 -D

当我转到 http://localhost:8080 时,我无法点击气流 UI 中的 dag。相反,我在 dag 名称旁边看到一个小图标:

奇怪的是,当我使用命令手动运行气流时

airflow webserver -p 8080

我可以点击dag!

我认为这个问题是由于网络服务器在作为守护进程运行时与手动运行时的配置不同。我不明白为什么,因为在这两种情况下,网络服务器都应该在同一个位置查找 dag,对吧?

问题:我该如何解决这个问题?当我手动运行网络服务器时,我的 dags 被识别,而当我将网络服务器作为守护进程运行时,我的 dags 被识别,这是什么原因?

【问题讨论】:

  • 您是通过airflow.cfg 还是环境变量设置AIRFLOW_HOME?
  • @cwurtz 通过气流.cfg

标签: python-3.x ubuntu airflow


【解决方案1】:

我不确定为什么会这样(它可能与守护进程运行的位置有关)但它确实有效:

在不同的 dag 文件中,我通过指向 dag 所在的目录(dags 文件夹)来指定路径。所以它会像这样定义日志位置:

log = ./log/etl_log.log

当手动运行网络服务器时,这不会导致任何问题,但在将网络服务器作为守护进程运行时会出现问题。因为在我将日志位置更改为

log = /home/user/airflow/dags/log/etl_log.log

我能够在 ui 中访问 dag。

【讨论】:

    猜你喜欢
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 2023-03-02
    • 2018-09-08
    相关资源
    最近更新 更多