“这个DAG似乎仅在本地存在。主调度程序似乎并不知道它的存在。”

时间:2018-06-27 03:39:05

标签: google-cloud-composer

我开始尝试在Google Cloud Composer中部署一些DAG:

enter image description here

我的一个DAG带有一条表明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存储桶。无论设置了什么调度程序间隔或将其设置为None,我总是在UI中看到info语句,而DAG永远不会自动启动。手动启动后,它将永远保持运行状态,并且永远不会触发第一个任务。

2 个答案:

答案 0 :(得分:3)

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

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

要对其进行调试,请单击DAG->“图形视图”->单击我的自定义运算符->“任务实例详细信息”,然后显示运算符中错误的堆栈跟踪。

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

答案 1 :(得分:0)

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