AirFlow之安装

文档

Docker安装

直接安装

  • 准备数据库
  • 设置基础环境
# 直接安装会报错,需要导入如下设置
export SLUGIFY_USES_TEXT_UNIDECODE=yes
  • install
pip install apache-airflow
  • 生成airflow.cfg文件
    • 设置airflow的HOME目录,并将其写入当前用户的环境变量中
    export AIRFLOW_HOME=~/airflow
    
    • 执行生成文件
    airflow version
    
  • 修改airflow.cfg
    # 数据库连接字符串
    sql_alchemy_conn = sql_alchemy_conn = mysql+pymysql://user_name:passwd@ip:port/db
    
    # executor
    executor = LocalExecutor
    
    # 设置时区
    default_timezone = Asia/Shanghai
    
    # 隐藏官方示例
    load_examples = False
    
  • 设置本地时区
    • 修改:~/anaconda3/envs/airflow/lib/python3.7/site-packages/airflow/utils/timezone.py
    # 第27行
    # 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
    
    #第70行
    # d = dt.datetime.utcnow()
    d = dt.datetime.now()
    
    • 修改:~/anaconda3/envs/airflow/lib/python3.7/site-packages/airflow/utils/sqlalchemy.py
    # 第37行
    # 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
    
    • 修改:~/anaconda3/envs/airflow/lib/python3.7/site-packages/airflow/www/templates/master.html
    <!-- 第33行 --> 
    <!-- var UTCseconds = (x.getTime() + x.getTimezoneOffset()*60*1000); -->
    var UTCseconds = x.getTime();
    
    <!-- 第37行--> 
    <!-- "timeFormat":"H:i:s %UTC%",--> 
    "timeFormat":"H:i:s",
    
  • db初始化
airflow initdb
  • 用户认证
    • 安装插件
    pip install "apache-airflow[password]"
    
    • 修改airflow.cfg
    [webserver]
    authenticate = True
    auth_backend = airflow.contrib.auth.backends.password_auth
    
    • 增加用户(Python下执行)
    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 scheduler
# 启动 web 服务器,默认端口是 8080(可以在airflow.cfg文件中修改)
airflow webserver -p 8081
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值