0

我开始尝试使用 Google Cloud Composer,在其中部署了一些 DAG:

在此处输入图像描述

我的一个 DAG 带有一条 info 语句,指示This DAG seems to be existing only locally. The master scheduler doesn't seem to be aware of its existence.无法运行,即使手动运行也是如此。当我手动启动它时,它会永远处于“运行”状态,并且永远不会开始运行第一个任务。

正如下面详细解释的那样,两个 DAG 之间的唯一区别是损坏的 DAG 使用的是自定义运算符。

您知道这里出了什么问题以及我该如何解决吗?

谢谢

  1. hello2_gcp_plugins_v2正在调用唯一的 bash 和电子邮件操作员按预期工作(我收到了电子邮件)。如果我配置一个 scheduler_interval 它会按预期启动。即使我将调度程序间隔设置为无,当我手动启动它时它运行良好
  2. hello2_gcp_plugins_v5正在调用我已经部署在预期存储桶中的自定义运算符。自定义操作符只是通过 HttpHook 调用 API 来获取数据并通过 GoogleCloudStorageHook 将其上传到 gcs 存储桶。无论调度程序间隔设置或保持为无,我总是在 UI 中看到 info 语句,并且 DAG 永远不会自动启动。手动启动时,它永远保持运行状态,并且永远不会触发第一个任务。
4

2 回答 2

3

我在解决问题时回答自己的问题,如果其他人遇到同样的麻烦,它可能会很有用。

即使不是很明显,以下信息This DAG seems to be existing only locally. The master scheduler doesn't seem to be aware of its existence.也是由于我的 DAG 中使用了错误的运算符。就我而言,我的自定义运算符之一。

要调试它,我单击 DAG -> Graph View -> 单击我的自定义运算符 -> 任务实例详细信息,然后显示我的运算符中错误的堆栈跟踪。

我修复了我的操作员,将新版本上传到 GCS 存储桶中,几次刷新后,Web UI 不再提及信息消息,我的 DAG 正在运行。

于 2018-06-27T04:32:34.173 回答
0

如果您在不停止调度程序的情况下添加新 dag 并且尚未在 dags 文件夹上运行刷新以查找新 dags,也会发生这种情况。您可以在 airflow.cfg 中更改调度程序刷新时间以使其刷新更快。

于 2020-08-10T19:53:34.473 回答