当前位置: 首页 > news >正文

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

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

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

http://www.lryc.cn/news/287538.html

相关文章:

  • [足式机器人]Part2 Dr. CAN学习笔记- 最优控制Optimal Control Ch07-3 线性二次型调节器(LQR)
  • Eyes Wide Shut? Exploring the Visual Shortcomings of Multimodal LLMs
  • 汤姆·齐格弗里德《纳什均衡与博弈论》笔记(4)博弈论与人性
  • MacOS平台翻译OCR软件,双管齐下,还可自定义插件,为其添砖加瓦!
  • 使用docker配置semantic slam
  • 面试常问的Spring AOP底层原理
  • C++拾遗(四)引用与指针
  • k8s架构、工作流程、集群组件详解
  • CF1362C Johnny and Another Rating Drop(二进制、复杂度考虑)
  • 1 - 搭建Redis数据库服务器|LNP+Redis
  • 米贸搜|Facebook“精准营销”越来越难?或许是“受众定位”没彻底搞清!
  • 【C++】内存分区模型
  • 通过strings二进制文件分析工具排查 version ‘GLIBC_2.25‘ not found 报错
  • 基于 MQTT 的开源桥接器:自由控制物联网设备 | 开源日报 No.151
  • 【QT+QGIS跨平台编译】之七:【libjpeg+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
  • VI / VIM的使用
  • 第十二站(20天):C++泛型编程
  • 【Docker】Dokcer学习① - 简介
  • PostgreSQL 100条命令
  • HTTP动态代理的原理及其对网络性能的影响
  • 69.使用Go标准库compress/gzip压缩数据存入Redis避免BigKey
  • JavaScript实现的一些小案例
  • MVC模式
  • Java中的代理模式(一)
  • 跳跃游戏-算法
  • ERP系统哪个好用?用友,金蝶,ORACLE,SAP综合测评
  • 外汇天眼:美国证券交易委员会(SEC)采纳了一系列规定,以加强与特殊目的收购公司(SPACs)相关的投资者保护
  • kotlin map 与 flatmap
  • nginx-rtmp-module 支持 Enhancing RTMP HEVC(H.265)
  • 2024最新JDK1.8+JDK17+JDK21安装包下载+文档