添加第一个 dag 时出现 Cloud Composer 调度程序错误

Posted

技术标签:

【中文标题】添加第一个 dag 时出现 Cloud Composer 调度程序错误【英文标题】:Cloud Composer scheduler error when adding first dag 【发布时间】:2019-05-04 14:08:26 【问题描述】:

我在本地 Airflow 上运行了一个 DAG。 我吃了 Cloud Composer,想把我的 DAG 移到那里。 添加第一个 DAG 文件时,调度程序显示此错误:

Traceback(最近一次调用最后一次):文件 “/usr/local/lib/airflow/airflow/models.py”,第 363 行,在 process_file m = imp.load_source(mod_name, 文件路径) 文件 “/usr/local/lib/python3.6/imp.py”,第 172 行,在 load_source 模块 = _load(spec) 文件“”,第 684 行,在 _load 文件中“”,第 665 行,在 _load_unlocked 文件中 “”,第 674 行,在 exec_module 中 文件“”,第 781 行,在 get_code 文件“”,第 741 行,在 source_to_code 文件“”,第 219 行,在 _call_with_frames_removed 文件“/home/airflow/gcs/dags/testdag.py”,第 95 行“开始日期”:日期时间(2018 年 12 月 5 日),

这是第 95 行:

args = 
    'owner': 'Airflow',
    'start_date': datetime(2018, 12, 05),
    'retries': 5,
    'retry_delay': timedelta(minutes=5)

以前从未遇到过此错误。

【问题讨论】:

您粘贴的日志行之前或之后是否有可能相关的日志行?由于在回溯中没有什么可做的,我不得不问一个显而易见的问题:在你的 DAG 定义中正确导入了 datetime 和 timedelta 吗? @Wilson 这个 dag 在我安装在 EC2 服务器上的 Airflow 中完美运行了 4 个月。我想把我的 dags 移到云作曲家。我移动了 dag,它产生了这个错误。这并不表示包有问题。我以前从未见过这个错误,也没有在谷歌上找到信息,所以我不知道如何调试它。此错误不会出现在常规 Airflow 上。 【参考方案1】:

如果您想运行 DAG 并从历史日期进行追赶,那么您将过去的日期指定为 start_date

尝试给予

from datetime import datetime, timedelta

args = 
    'owner': 'Airflow',
    'provide_context': True,
    'depends_on_past': False,
    'start_date': datetime.combine(datetime.today(),datetime.min.time()),
    'retries': 5,
    'retry_delay': timedelta(minutes=5)

【讨论】:

我不想更改 DAG 逻辑。它适用于常规 Airflow,但不适用于 Cloud Composer。我想了解原因【参考方案2】:

可能是您在 start_date 中给出的日期值。 尝试在 datetime(2018, 12, 05) 中仅提供 5 并再次更新 DAG 文件夹。

【讨论】:

以上是关于添加第一个 dag 时出现 Cloud Composer 调度程序错误的主要内容,如果未能解决你的问题,请参考以下文章

将 spring-cloud-sleuth 添加到类路径时出现“上下文初始化”错误

将 Google Cloud 语言库添加到 Android 应用时出现重复的类

Spring cloud netflix eureka server - 启动时出现tomcat错误

使用 Cloud Functions for Firebase 时出现 CORS 错误

Spring Cloud Config 客户端获取配置时出现异常怎么进行重试

配置项目“:cloud_firestore”时出现问题 //已关闭