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

### Apache Airflow 安装指南 #### 3.1 环境准备 为了成功安装并运行Apache Airflow,需先准备好Python环境。建议使用虚拟环境来管理依赖项。创建和激活虚拟环境的方法如下: ```bash python3 -m venv my_airflow_env source my_airflow_env/bin/activate ``` #### 3.2 安装Airflow 通过pip工具可以方便地安装最新版本的Airflow及其推荐组件。 ```bash pip install "apache-airflow==2.6.0" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.6.0/constraints-3.7.txt" ``` 此命令会自动下载适合当前系统的约束文件,并按照指定条件安装Airflow[^2]。 对于希望集成Livy服务的支持,可以通过额外执行以下命令完成相应模块的安装: ```bash pip install apache-airflow-providers-apache-livy ``` 这一步骤允许Airflow作业调度器与远程Spark集群交互,从而更好地支持大数据处理任务[^1]。 #### 3.3 初始化数据库 首次启动前需要初始化Airflow内部使用的SQLite或其他关系型数据库。 ```bash airflow db init ``` 该操作将建立必要的表结构用于存储工作流定义和其他元数据信息。 #### 3.4 创建管理员账户 为了让Web界面能够正常访问,还需设置至少一名具有超级权限的用户账号。 ```bash airflow users create \ --username admin \ --firstname Peter \ --lastname Parker \ --role Admin \ --email spiderman@superhero.org ``` 以上参数可根据实际情况调整以适应具体需求场景。 #### 3.5 启动服务 最后依次开启各个子服务即可让整个平台投入运作状态。 ```bash airflow webserver --port 8080 & airflow scheduler & ``` 此时应该可以在浏览器中输入`http://localhost:8080`查看到默认首页画面了。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值