Airflow的安装、修改为中国时间及隐藏官方示例

Airflow的安装、修改为本地时间及隐藏官方示例


airflow web UI默认使用utc时间,在中国时区需要用+8小时就是本地时间,下面通过修改airflow源码修改为中国时区,使用airflow版本是1.10.2。

1.airflow的安装
# 设置airflow的家目录,~/airflow为默认的
AIRFLOW_HOME=~/airflow

# install from pypi using pip
# 直接安装会报错,需要导入如下设置
export SLUGIFY_USES_TEXT_UNIDECODE=yes
pip install apache-airflow
2.修改源码改为本地时间
  • 在airflow家目录下修改airflow.cfg,设置

    default_timezone = Asia/Shanghai
    
  • 进入airflow包的安装位置,也就是site-packages的位置

    cd /usr/lib/python2.7/site-packages/ 
    
  • 修改airflow/utils/timezone.py

    • 在 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()函数 (在第69行)

      原代码 d = dt.datetime.utcnow() 
      修改为 d = dt.datetime.now()
      
  • 修改airflow/utils/sqlalchemy.py

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

      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
      
  • 修改airflow/www/templates/admin/master.html(第31行)

    把代码 var UTCseconds = (x.getTime() + x.getTimezoneOffset()*60*1000); 
    改为 var UTCseconds = x.getTime();
    
    把代码 "timeFormat":"H:i:s %UTC%",
    改为  "timeFormat":"H:i:s",
    
  • 最后重启airflow-webserver即可

3.隐藏官方示例
  • 修改 airflow.cfg配置项(97行), 在airflow_home(airflow_home = /root/airflow)下

    load_examples = False
    
  • 删除airflow.db ,在airflow_home(airflow_home = /root/airflow)下,重新初始化

    airflow initdb
    

Shylin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值