使用miniforge平替anaconda,重建airflow服务
背景
因公司通知不能使用anaconda,可以采用miniforge 作为开源平替,因之前环境搭建使用的就是anaconda,当前需要卸载并替换成miniforge。那为什么一定要用这个呢,其实也不是一定,而是用这个搭建环境比较省事,如果没用这个,我当前环境的python版本过低,解决这个问题耗费的时间会更久,所以最终还是选择替换。
卸载anaconda
- 直接删除
rm -rf ~/anaconda3
目录 - 删除
~/.bashrc
中关于anaconda的配置信息 source ~/.bashrc
更新环境变量文件
安装miniforge
下载安装文件
安装
- 将下载的.sh文件上传到服务器
- 添加执行权限 :
sudo chmod +x Miniforge3-Linux-x86_64.sh
- 进行安装:
./Miniforge3-Linux-x86_64.sh
跟着提示进行处理即可。 - 安装完成后,可以直接重启系统。
安装airflow
可以直接使用conda安装,这样直接就是最新版本
conda install apache-airflow
安装mysql数据库连接驱动
pip install mysql-connector-python
重配置systemd服务
本以为到这里就可以直接启动了,重启后发现没法正常启动,就看了一下实际的服务脚本,和当前airflow程序所在路径,发现路径地址不对。
找到airflow具体位置:
(base) deepin@deepin-PC:~$ whereis airflow
airflow: /home/deepin/miniforge3/bin/airflow
发现原来的路径是:/home/deepin/anaconda3/bin/airflow
,所以需要替换成上面的路径
修改服务
进入/etc/systemd/system
目录
找到之前我写好的服务文件
airflow-scheduler.service
airflow-webserver.service
修改airflow-scheduler.service
[Unit]
Description=Airflow scheduler daemon
After=network.target mariadb.service airflow-webserver.service
Wants=mariadb.service airflow-webserver.service
[Service]
Environment="PATH=/home/deepin/miniforge3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
User=deepin
Group=deepin
Type=simple
ExecStart=/home/deepin/miniforge3/bin/airflow scheduler -D
Restart=on-failure
RestartSec=5s
PrivateTmp=true
[Install]
WantedBy=multi-user.target
修改airflow-webserver.service
[Unit]
Description=Airflow Webserver
After=network.target
[Service]
Environment="PATH=/home/deepin/miniforge3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Environment="PYTHONPATH=/home/deepin/airflow/dags/moduler_FJX:$PYTHONPATH"
User=deepin
Group=deepin
Type=simple
ExecStart=/home/deepin/miniforge3/bin/airflow webserver -p 8080 -D
Restart=on-failure
RestartSec=5s
PrivateTmp=true
[Install]
WantedBy=multi-user.targetll
python库依赖文件
这个跟上面的内容无关,是我自己的服务需要
beatuifulsoap4
psycopg2
pygerrit2