Rocky8 顺利安装 Airflow 并解决数据库报错问题

发布时间:2024年01月25日

rocky是替代centos的服务器系统,稳定可靠。rocky8会比centos7新,可以支持更多服务软件的安装,免去升级各种库的麻烦,本文运行airflow服务就用rocky8系统。airflow是一个定时任务管理系统,功能强大,目前是apache旗下的一个开源项目。话不多说,正文开始。

  1. 准备一个vm虚拟机,在里面安装rocky8,完成后进入系统终端(下文pyenv和airflow都将安装在用户目录下)
  2. 然后安装pyenv:
    1. 安装:curl https://pyenv.run | bash
    2. 安装python需要的依赖:yum install gcc make patch zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel
  3. 安装python3.10.9:pyenv install 3.10.9
  4. 切换到虚拟环境venv:pyenv virtualenv 3.10.9 dev3109
  5. 把虚拟环境设置为dev3109:pyenv global dev3109
  6. 关闭系统防火墙:systemctl disable --now firewalld.service
  7. 安装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’
  8. 初始化airflow数据库:airflow db migrage
  9. 修改配置文件以便连接数据库:
cd ~/airflow; vim airflow.cfg
# 修改如下配置,把用户名,密码,ip:端口,mysql库名 改为你自己的值
sql_alchemy_conn = mysql+mysqldb://USERNAME:PASSWORD@IP_ADR:3306/airflow_db
  1. 安装mysqlclient库:
yum install mysql-devel python-devel
pip install mysqlclient
  1. 启动airflow:airflow webserver -p 8080
  2. 从浏览器访问airflow:http://虚拟机ip地址:8080,效果如下:
    首次使用是没有用户的,需要在rocky系统终端中用命令行创建:
# 输入以下命令,回车,会让你输入密码
airflow users create \
          --username admin \
          --firstname FIRST_NAME \
          --lastname LAST_NAME \
          --role Admin \
          --email admin@example.org

在这里插入图片描述
完成。

文章来源:https://blog.csdn.net/damiaomiao666/article/details/135829525
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。