Apache Airflow是一个开源的以编程方式编写、调度和监控工作流的平台。
工作流使用代码进行定义,让它们变得更加可维护、可版本化、可测试和协作性。
本文基于conda,讲解Airflow的单机版安装过程
git 地址
文档地址
创建一个新的Python虚拟环境
conda create --name airflow_env python=3.9 -yconda 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=~/airflowpip install "apache-airflow==2.2.3" --constraint ./constraints-no-providers-3.9.txt
2.2.Airflow初始化airflow db initairflow 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:8088web_server_port = 8088base_url = http://ip:8088
airflow webserver -Dairflow scheduler -D
成功启动后,打开airflow web界面如下:
修改$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