在centos上用mysql作数据库 搭建airflow

72 篇文章 0 订阅
66 篇文章 0 订阅
pip install apache-airflow

注意点:

0. airflow 对python lib的版本要求很奇怪,会要求一些老版本的lib,导致和其他软件冲突,建议使用 “python -m venv airflow-venv”为它创建单独的环境。

1. airflow 默认用sqlite作数据库,2.0版本的airflow对sqlite的版本要求较高(>3.15)

2. airflow可以不用sqlite,用其他数据库

3. 环境变量 "AIRFLOW_HOME" 很重要,执行airflow命令时,读取配置文件的路径就是根据该环境变量确定。建议配置到 /etc/profile

4. 根据你python的版本要下一个constraints-X.X.txt的文件,用于安装。

以下假设AIRFLOW_HOME=/opt/airflow

第一步:

# bash shell
export AIRFLOW_HOME=/opt/airflow

AIRFLOW_VERSION=2.0.1
PYTHON_VERSION=3.7

pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint constraints-${PYTHON_VERSION}.txt  # txt文件要预先下载 (e.g. https://raw.githubusercontent.com/apache/airflow/constraints-2.0.1/constraints-3.7.txt)

第二步:mysql建一个空白数据库

# sql
create database airflow character set utf8;
create user airflow identified by 'password';
grant all on airflow.* to airflow;
flush privileges;

第三步:编辑配置文件

在编辑配置文件前,先在命令行里执行一句 “airflow version”,airflow会自动把配置文件初始化出来,放到AIRFLOW_HOME中,但此时用的数据库是sqlite,可能会因为sqlite版本不够高而报错。但没关系我们接下来通过修改配置文件,让airflow改用mysql。

sudo vi ${AIRFLOW_HOME}/airflow.cfg

# 编辑如下配置项
dags_folder = /opt/airflow/dags 
web_server_port = 18082
sql_alchemy_conn = mysql+pymysql://airflow:password@localhost:3306/airflow   # 注意这里是mysql+pymysql,这句就是改成mysql的关键。
default_timezone = Asia/Shanghai
default_ui_timezone = Asia/Shanghai
load_examples = False
dags_are_paused_at_creation = False # dag初始后不必暂停

第四步:初始化数据库

sudo airflow db init

第五步:创建admin账户

airflow users create \
    --username admin \
    --firstname a \
    --lastname a \
    --role Admin \
    --email a@b.com

第六步:开启进程

nohup airflow webserver -p 18082 >> ${AIRFLOW_HOME}/logs/webserver.log 2>&1 &
nohup airflow scheduler >> ${AIRFLOW_HOME}/logs/scheduler.log 2>&1 &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱知菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值