添加第一个 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 错误