本文主要是介绍Rocky8 顺利安装 Airflow 并解决数据库报错问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
rocky是替代centos的服务器系统,稳定可靠。rocky8会比centos7新,可以支持更多服务软件的安装,免去升级各种库的麻烦,本文运行airflow服务就用rocky8系统。airflow是一个定时任务管理系统,功能强大,目前是apache旗下的一个开源项目。话不多说,正文开始。
- 准备一个vm虚拟机,在里面安装rocky8,完成后进入系统终端(下文pyenv和airflow都将安装在用户目录下)
- 然后安装pyenv:
- 安装:
curl https://pyenv.run | bash
- 安装python需要的依赖:
yum install gcc make patch zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel
- 安装:
- 安装python3.10.9:
pyenv install 3.10.9
- 切换到虚拟环境venv:
pyenv virtualenv 3.10.9 dev3109
- 把虚拟环境设置为dev3109:
pyenv global dev3109
- 关闭系统防火墙:
systemctl disable --now firewalld.service
- 安装airflow指定版本:
pip install "apache-airflow==2.7.3" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.7.3/constraints-3.11.txt"
注意:第7步必须安装指定版本airflow,不然可能会有如下报错:TypeError: SqlAlchemySessionInterface.init() missing 6 required positional arguments: ‘sequence’, ‘schema’, ‘bind_key’, ‘use_signer’, ‘permanent’, and ‘sid_length’ - 初始化airflow数据库:
airflow db migrage
- 修改配置文件以便连接数据库:
cd ~/airflow; vim airflow.cfg
# 修改如下配置,把用户名,密码,ip:端口,mysql库名 改为你自己的值
sql_alchemy_conn = mysql+mysqldb://USERNAME:PASSWORD@IP_ADR:3306/airflow_db
- 安装mysqlclient库:
yum install mysql-devel python-devel
pip install mysqlclient
- 启动airflow:
airflow webserver -p 8080
- 从浏览器访问airflow:
http://虚拟机ip地址:8080
,效果如下:
首次使用是没有用户的,需要在rocky系统终端中用命令行创建:
# 输入以下命令,回车,会让你输入密码
airflow users create \--username admin \--firstname FIRST_NAME \--lastname LAST_NAME \--role Admin \--email admin@example.org
完成。
这篇关于Rocky8 顺利安装 Airflow 并解决数据库报错问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!