Airflow--基于conda的单机版安装过程

1.什么是airflow

Apache Airflow是一个开源的以编程方式编写、调度和监控工作流的平台。

工作流使用代码进行定义,让它们变得更加可维护、可版本化、可测试和协作性。

本文基于conda,讲解Airflow的单机版安装过程

git 地址
文档地址

2.安装

2.1.准备python虚拟环境

创建一个新的Python虚拟环境

conda create --name airflow_env python=3.9 -y
conda activate airflow_env

因为服务器不能访问https://raw.githubusercontent.com,所以constraints.txt文件需要提前下载好并上传至服务器
本文使用的是:https://raw.githubusercontent.com/apache/airflow/constraints-2.2.3/constraints-no-providers-3.9.txt

注意:URL的格式是: https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt
根据实际情况,调整airflow及python的版本,调整后要确保在浏览器中能正常打开此URL

export AIRFLOW_HOME=~/airflow
pip install "apache-airflow==2.2.3" --constraint ./constraints-no-providers-3.9.txt

2.2.Airflow初始化

airflow db init

airflow users create --username admin --password admin --firstname zhang --lastname san --role Admin --email zhangsan@163.com

2.3.Airflow启动

默认情况下,webserver使用8080端口,如果被占用(使用lsof -i tcp:8080检查),则需要修改$AIRFLOW_HOME/airflow.cfg文件中的如下三项配置

  • endpoint_url = http://ip:8088
  • web_server_port = 8088
  • base_url = http://ip:8088
airflow webserver -D
airflow scheduler -D

成功启动后,打开airflow web界面如下:
在这里插入图片描述

3.其它

3.1.如何去除airflow的DAG 样例?

  • 修改$AIRFLOW_HOME/airflow.cfg,将load_examples = True 修改为load_examples = False
  • 重置数据库 airflow db reset
  • 重新启动webserver 、scheduler

3.2.更改元数据数据库

不要在生产中使用SQLite作为元数据数据库——它应该只用于开发/测试

3.2.1.查看当前配置

查看当前元数据数据库的配置: airflow config get-value core sql_alchemy_conn

3.2.2.更改步骤

  • 创建数据库、用户
## 创建数据库、用户
CREATE DATABASE airflow CHARACTER SET utf8 COLLATE utf8_general_ci;
create user 'airflow'@'%' identified by 'airflow';
create user 'airflow'@'localhost' identified by 'airflow';
GRANT ALL PRIVILEGES ON airflow.* TO 'airflow';
flush privileges;

如果执行失败,则使用下面的语句 查看字符集、更改密码策略

show variables like 'character_set%';
show variables like 'collation%'; 

set global validate_password_length=0; 
set global validate_password_policy=0; 
show variables like 'val%';
  • 修改$AIRFLOW_HOME/airflow.cfg
    sql_alchemy_conn = mysql+mysqldb://airflow:airflow@172.25.21.29:3306/airflow
  • 修改数据库配置:修改my.cnf,在 [mysqld] 部分添加:explicit_defaults_for_timestamp=1,注意:修改为要重启数据库
  • 安装mysqlclient pip install mysqlclient==2.1.0,注意报:OSError: mysql_config not found,请先安装mysql5.7.x的客户端即可。
  • 初始化数据库 airflow db init
  • 创建admin用户 airflow users create --username admin --password admin --firstname zhang --lastname san --role Admin --email zhangsan@163.com

3.3. 修改Executor

  • 修改$AIRFLOW_HOME/airflow.cfg,将executor = SequentialExecutor 修改为executor = LocalExecutor
  • 重新启动webserver 、scheduler

3.4. 如何安装provider

参见: installing-and-upgrading-providers,示例如下:

  • 安装mysql provider: pip install apache-airflow-providers-mysql==2.1.1
  • 安装jdbc provider: pip install apache-airflow-providers-jdbc==2.0.1
  • 安装http provider: pip install apache-airflow-providers-http==2.0.1

安装后,查看providers列表如下:
在这里插入图片描述

日志配置

参见如下文章:
Airflow Logs
airflow中log表详解

查看当前配置:airflow config list

参考

airflow-install
airflow local install
airflow production-deployment
airflow set-up-database
airflow lineage

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

enjoy编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值