zoukankan      html  css  js  c++  java
  • 配置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即可

  • 相关阅读:
    centos7 启动mongodb时报错ERROR: child process failed, exited with error number 1
    liunxcentos7下 跟目录空间不足docker load镜像报错空间不足
    centos7下初始化硬盘挂载目录
    Jenkins打包出错
    CentOS 7 安装 Percona XtraDB Cluster 5.7
    Etcd集群搭建(证书通信)
    centos7下prometheus+grafana监控
    nginx代理
    装Centos7系统
    Dockerfile常用指令使用案例
  • 原文地址:https://www.cnblogs.com/braveym/p/12664808.html
Copyright © 2011-2022 走看看