【问题标题】:apache-airflow 1.9 default timezone set to non utcapache-airflow 1.9 默认时区设置为非 UTC
【发布时间】:2018-06-20 00:16:48
【问题描述】:

我最近将气流版本从气流 1.8 升级到 apache-airflow 1.9,升级成功,我使用 Celery Executor 扩展了环境,一切似乎都运行良好,但 dag 和任务开始日期、执行日期等出现在 UTC 时区中,并且计划的 dag 在 UTC 中运行,在升级之前它们曾经在本地时区(即 pdt)中运行。

关于如何将 pdt 作为气流中的默认时区的任何想法?

我尝试在airflow.cfgdefault_timezone = pdt 中使用default_timezone,但即使在重新启动所有服务后,它也会以UTC 调度dags 和任务。期待您的帮助,将默认时区修复为 pdt。

【问题讨论】:

    标签: timezone utc airflow apache-airflow


    【解决方案1】:

    Airflow 在版本 1.9.0 之前的本地时区运行是无意的,这只是使用 datetime.now()datetime.today() 而不是 datetime.utcnow() 的 Airflow 代码的副作用。正如您所观察到的,这已在 1.9.0 中的 AIRFLOW-289 下得到纠正,使事情与时区无关(始终为 UTC)。

    对 Airflow 时区感知的官方支持已合并到主分支中。这项工作是作为 AIRFLOW-288 的一部分完成的,并且在最新的稳定版本 (1.9.0) 中可用。您可能会在下一个主要版本中期待它。

    一旦您进行了更改,Matt 的回答应该会为您提供所需的内容。

    【讨论】:

    • 感谢丹尼尔!对于您的回复,这是很好的信息并回答了我的问题。只需检查是否有任何其他选项可用于在非 UTC 中运行 dag。即通过更改任何包、安装、dag 代码等。
    • 很遗憾,我想不出一个简单的方法。我认为你最好的选择是在时区正式发布之前使用 v1.9.0 的分支并恢复 change(可能会很混乱),或者使用已经支持时区的 master 分支。
    • @DanielHuang,我正在使用气流 v1.10.1 并更改了 default_timezone = Asia/Kolkata,但它在气流 UI 中显示 UTC 日期。还没有解决吗?
    • @Kaushal 我遇到了同样的错误。你是怎么解决的?
    【解决方案2】:

    根据these docsdefault_timezone 接受 IANA TZ 数据库时区标识符。它们在此处列出。

    如果你想要美国太平洋时间,你应该设置default_timezone=America/Los_Angeles

    【讨论】:

    • 我尝试过 default_timezone = 'America/Los_Angeles',但它仍然无法在 UTC 中工作,dags 在 UTC 中被触发。
    • 是的,马特,我也尝试使用文档让 dags 时区感知,但我收到错误 ``` File "/opt/python27_enhanced-virtual-hadoop/lib/python2.7/site- packages/airflow/ti_deps/deps/exec_date_after_start_date_dep.py",第 24 行,在 _get_dep_statuses 如果 ti.task.start_date 和 ti.execution_date
    猜你喜欢
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2011-07-01
    • 2020-08-31
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多