DAG 在 Web 中不可见-UI

DAG not visible in Web-UI

我是 Airflow 的新手。我正在按照教程编写以下代码。

from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime, timedelta
from models.correctness_prediction import CorrectnessPrediction

default_args = {
    'owner': 'abc',
    'depends_on_past': False,
    'start_date': datetime.now(),
    'email': ['abc@xyz.com'],
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 1,
    'retry_delay': timedelta(minutes=5)
}

def correctness_prediction(arg):
    CorrectnessPrediction.train()

dag = DAG('daily_processing', default_args=default_args)

task_1 = PythonOperator(
    task_id='print_the_context',
    provide_context=True,
    python_callable=correctness_prediction,
    dag=dag)

在 运行 脚本上,它没有显示任何错误,但是当我在 Web-UI 中检查 dags 时,它没有显示在 Menu->DAG

但我可以在菜单->浏览->工作[下看到预定的job =35=]

我也看不到 $AIRFLOW_HOME/dags 中的任何内容。难道只能这样吗?有人可以解释为什么吗?

您在作业页面上看到的 ScheduleJob 是调度程序的条目。那不是预定的日期。

你的 $AIRFLOW_HOME/dags 是空的,这很奇怪。所有 dags 必须位于 $AIRFLOW_HOME/dags 目录中(特别是在 airflow.cfg 文件中配置的 dags 目录中)。看起来您没有将实际的 dag 存储在正确的目录(dags 目录)中。

或者,有时您还需要重新启动网络服务器才能显示 dag(尽管这似乎不是这里的问题)。

检查 airflow.cfg 中的 dags_folder 变量。如果您有虚拟环境,那么 运行 主项目目录中的命令 export AIRFLOW_HOME=$(pwd)。请注意,运行ning export AIRFLOW_HOME=$(pwd) 期望您的 dag 位于项目目录的 dags 子目录中。

运行 airflow list_dags 检查 dag 文件的位置是否正确。

出于某种原因,我在执行此操作之前没有在浏览器中看到我的 dag UI。一定是浏览器缓存或其他问题。

如果这不起作用,您应该使用 airflow webserver -p 8080 -D

重新启动网络服务器

我们需要澄清几件事:

  1. 绝对不需要您自己 运行 DAG 文件(除非您 testing 它是因为语法错误)。这是 Scheduler/Executor.
  2. 的工作
  3. 要使 DAG 文件对调度程序(以及 Web 服务器)可见,您需要将其添加到 dags_folder(在 airflow.cfg 中指定。默认情况下它是 $AIRFLOW_HOME/dags 子文件夹) .

Airflow Scheduler 默认每 5 分钟检查 dags_folder 新 DAG 文件(由 airflow.cfg 中的 dag_dir_list_interval 控制)。所以如果你刚刚添加了一个新文件,你有两个选择:

  1. 重新启动计划程序
  2. 等到当前调度程序进程选择新的 DAG。

我有同样的问题。要解决我需要 运行 scheduler

airflow scheduler

没有这个命令,我看不到我的新 DAG 顺便说一句:UI 显示与该问题相关的警告:

The scheduler does not appear to be running. Last heartbeat was received 9 seconds ago. The DAGs list may not update, and new tasks will not be scheduled.

勾选 Paused dags。您的 DAG 可能到此为止。如果您确定已正确添加 .py 文件,请使用 dag_id 手动键入 dag 的 url。例如http://AIRFLOW_URL/graph?dag_id=dag_id。然后你可以看看Airflow是否接受了你的DAG。

我遇到了同样的问题。我把下载的 Airflow 放了两次,一次没有 sudo,一次有 sudo。我使用的是 sudo 版本,其中目录位于我的用户路径下。我只是 运行 气流命令: 导出 AIRFLOW_HOME=~/气流

我遇到了同样的问题。就我而言,新 DAG 的权限不正确。

运行 ls -l 查看新DAG的权限。对我来说,所有者被列为我自己,而不是默认的气流用户(在我的情况下应该是 root)。

一旦我更改了权限 (chown root:root <file_name>),该文件立即出现在 Web UI 中。

列出 dag 或重新启动网络服务器对我没有帮助。但重置数据库确实如此。

airflow db reset