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
完成。