• 配置AirFlow系统时钟与宿主进同步


    Airflow自带的时区是UTC时区,通常跟当前的环境时区不一样,因此我们需要对时区进行修改。

     

    1、修改airflow的配置文件airflow.cfg

    default_timezone = Asia/Shanghai

     

    2、进入airflow包的安装位置,也就是site-packages的位置,由于我们airflow环境是部署在容器里面的,site-packages的位置通常在这里容器的

    /usr/local/lib/python3.7/site-packages/

     

         3、修改airflow/utils/timezone.py

         timezone.py 文件所在目录/usr/local/lib/python3.7/site-packages /airflow/utils

         在 utc = pendulum.timezone(‘UTC’) 这行(第27行)代码下添加:

    from airflow import configuration as conf

    try:

        tz = conf.get("core", "default_timezone")

        if tz == "system":

           utc = pendulum.local_timezone()

        else:

           utc = pendulum.timezone(tz)

    except Exception:

        pass

        

         修改utcnow()函数:

    原代码 d = dt.datetime.utcnow()

    修改为 d = dt.datetime.now()

     

         4、修改airflow/utils/sqlalchemy.py

         在utc = pendulum.timezone(‘UTC’) 这行代码下添加:

    from airflow import configuration as conf

    try:

        tz = conf.get("core", "default_timezone")

        if tz == "system":

           utc = pendulum.local_timezone()

        else:

           utc = pendulum.timezone(tz)

    except Exception:

        pass

     

    5、改airflow/www/templates/admin/master.html

    该文件所在目录:

    /usr/local/lib/python3.7/site-packages/airflow/www/templates/admin

     

    把代码 var UTCseconds = (x.getTime() + x.getTimezoneOffset()*60*1000);

    改为 var UTCseconds = x.getTime();

     

    把代码 "timeFormat":"H:i:s %UTC%",

    改为  "timeFormat":"H:i:s",

     

         7、修改Docker容器的时间和宿主时间一致

     

         在容器中修改下/etc/localtime文件的名称,避免冲突

          cd /etc/

           mv localtime localtime_bak

           cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

           查看容器和宿主机的时间,将会看到两个时间一致

     

    8、最后重启airflow-webserver即可

  • 相关阅读:
    MIT6.S081 Lab traps
    MIT6.S081 Preparation: Read chapter 7
    MIT6.S081 Lab cow
    MIT6.S081 Lab Multithreading
    MIT6.S081 Preparation: Read chapter 5
    MIT6.S081 Lab networking
    java接口代码中出现$ref
    java获取encodeURI编码后的链接
    剑指 Offer II 002. 二进制加法 模拟法
    Leetcode NO.46 Permutations 全排列
  • 原文地址:https://www.cnblogs.com/braveym/p/12664808.html
Copyright © 2020-2023  润新知