centOS7 禁用nouveau

前言:

Linux系统一般默认安装的是开源的nouvea显卡驱动,它与nvidia显卡驱动产生冲突,欲装nvidia必禁nouvea!其次Nvidia驱动默认安装OpenGL桌面,然而这又与GNOME桌面冲突,为了系统不宕机,也需禁用nvidia的OpenGL,过程中需要搭建gcc、kernel等环境。如此,可顺利安装NVIDIA显卡驱动。

参考的官方链接:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#runfile-nouveau

参考的CSDN链接:https://blog.csdn.net/yxdayd/article/details/94742500

# 步骤一
lsmod | grep nouveau  # 查看是否安装了nouveau,有结果表示正在使用nouveau

# 步骤二
sudo vim /etc/modprobe.d/blacklist-nouveau.conf  # 创建一个新的文件,在文件中加入下面两句代码
	blacklist nouveau
	options nouveau modeset=0
# 步骤三
sudo dracut --force

# 步骤四,部分机器需要重启,
sudo reboot

# 步骤五
lsmod | grep nouveau  # 验证是否禁用成功,没有结果表示禁用成功

扩展知识: 查看系统版本:cat /etc/redhat-release ,结果为CentOS Linux release 7.9.2009 (Core)

centOS7 安装显卡驱动

参考链接:https://www.cnblogs.com/gollong/p/12655424.html,里面记载了准备工作和部分安装流程,提供参考

显卡驱动选择下载链接:https://www.nvidia.cn/Download/index.aspx?lang=cn,本人依据系统版本选择的“操作系统”选项的值为“Linux 64-bit”,请选择自己对应的系统版本。

准备工作:
# 更新安装源
$ yum clean all
$ yum makecache
$ sudo yum update

# 安装更新依赖环境
sudo yum install kernel-devel gcc -y  

# 查看内核版本
ls /boot | grep vmlinu

# 查看源码版本,检查版本是否一致,99%大概率是一致的
rpm -aq | grep kernel-devel

# 如果版本不一致,本教程暂时不提供解决方案,请自行谷歌,主要就是要将版本安装一致,有些时间其实你已经安装好了而已,但是系统没有重启过,所以识别不到这个新的安装包,所以重启一下试试,因为我自己每次都更新yum源后才进行安装的,所以按照我这个流程走,99%概率不会不一致。
# 如果版本一致,请接着往下走
# 重启
sudo reboot

开始安装:

因为系统版本是CentOS Linux release 7.9.2009 (Core),所以我需要下载对应的显卡驱动,下载的显卡驱动文件链接:https://cn.download.nvidia.com/tesla/460.73.01/NVIDIA-Linux-x86_64-460.73.01.run

# 步骤一,下载对应的显卡驱动文件
sudo wget https://cn.download.nvidia.com/tesla/460.73.01/NVIDIA-Linux-x86_64-460.73.01.run

# 步骤二,下载好之后给文件赋予执行权限
sudo chmod 777 NVIDIA-Linux-x86_64-460.73.01.run

# 步骤三,安装显卡驱动
sudo sh NVIDIA-Linux-x86_64-460.73.01.run -no-x-check -no-nouveau-check -no-opengl-files
# -no-x-check 表示安装驱动时关闭X服务
# -no-nouveau-check  表示安装驱动时禁用nouveau
# -no-opengl-files  表示只安装驱动文件,不安装OpenGL文件,
# 运行代码之后安装提示点击按钮即可

# 步骤四,验证是否成功,正确出现结果则表示安装成功
nvidia-smi

centOS7 安装GPU的docker

参考链接:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html,按照官方的安装步骤进行安装即可成功

docker拉取镜像

如果从官网直接拉取镜像的话,速度很慢,所以在真正拉取镜像直接,需要配置国内的镜像源。参考链接:https://www.runoob.com/docker/docker-mirror-acceleration.html

# 步骤一配置国内镜像源,修改文件
$ sudo vim  /etc/docker/daemon.json
# 然后在文件中添加下面代码
{"registry-mirrors":["https://reg-mirror.qiniu.com/"]}
# 之后重启服务,
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

拉取好镜像之后,使用该镜像创建容器,命令如下,命令的含义参考链接:https://www.runoob.com/docker/docker-install-python.html,这个镜像huangjxgood/tf2.2.3-gpu-py3.6-jupyter:v1是我自己创建给预测项目的

$ sudo docker run -itd --gpus all -v /data:/home -w /home -p 8877:8888 --name tf2.2 huangjxgood/tf2.2.3-gpu-py3.6-jupyter:v1 /bin/bash

然后通过使用这个docker容器来配置jupyter服务,配置好之后我们才方便在本地计算机使用jupyter进行开发,参考链接:https://www.dazhuanlan.com/2019/10/18/5da9445f333f4/

我现在对四台服务器都配置jupyter服务,链接分别如下:

用户jupyter链接
生成服务器http://10.2.160.1:8877/tree?token=1357
测试服务器-东哥http://10.2.160.2:8877/tree?token=1357
测试服务器-俊雄http://10.2.160.3:8877/tree?token=1357
测试服务器-学波http://10.2.160.4:8877/tree?token=1357

centos7安装python3.6

在10.2.160.1上面进行下面的操作,需要在centos7环境之下安装python3.6环境并安装相应的工具包,参考链接安装python3.8:https://www.jianshu.com/p/15f40edefb13和参考安装python3.6:https://cloud.tencent.com/developer/article/1566881

1、安装依赖包
sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel xz-devel
# 我增加了一个工具包xz-devel
2. 安装wget
sudo yum install wget

这个包是为了下载python源码用的

4. 下载源码包
cd /data
sudo mkdir download
cd download
sudo wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

如果想安装其他版本,去python官网下载页面下载对应的版本即可。

5. 解压安装
# 解压压缩包
sudo tar -zxvf Python-3.6.6.tgz  

# 进入文件夹
cd Python-3.6.6

# 配置安装位置
sudo ./configure prefix=/data/python3.6  # 安装位置自己决定即可

# 安装
sudo make
sudo make install

如果最后没提示出错,就代表正确安装了,在/data/目录下就会有python36目录

6. 添加软连接
#添加python3的软链接 
sudo ln -s /data/python36/bin/python3.6 /usr/bin/python3.6  # 10.2.160.3是python36

#添加 pip3 的软链接 
sudo ln -s /data/python36/bin/pip3.6 /usr/bin/pip3.6  # 10.2.160.3是pip36

# 更新pip
sudo pip3.6 install --upgrade pip

到这里位置python3.6安装完毕,下面就是安装相应的可用的工具库了

7.安装相应工具库
# 安装pyhive
sudo yum install gcc-c++ python-devel.x86_64 cyrus-sasl-devel.x86_64
pip3.6 install sasl
pip3.6 install thrift
pip3.6 install thrift-sasl
pip3.6 install PyHive

# 安装TensorFlow等等其它工具包
pip3.6 install tensorflow==2.2
pip3.6 install sklearn
pip3.6 install pandas
pip3.6 install Flask
pip3.6 install matplotlib
pip3.6 install sqlalchemy
pip3.6 install pymysql
8.使用uwsgi将flask服务进行挂载,参考链接:https://cloud.tencent.com/developer/article/1609621

下面的操作在10.2.160.3上面进行

# 安装uwsgi
pip3.6 install uwsgi

# 运行
/data/python36/bin/uwsgi -d --ini /data/predict/product/test.ini

如果要杀死这个进程,使用kill即可

predict接口文档

前言:

1、目前因为接口算法运行时间较长,所以暂时不支持并发调用;另外,代码部署在10.2.160.3测试机上。在后续的工作中,因为每次调用都希望直接可以取到结果,所以直接调用取到结果的接口应该是读取我这些接口写进数据库的数据才是,所以我这些接口应该是为了后面实现的定时任务做的准备。

2、

1、测试flask服务是否接通

接口:http://10.2.160.3:8877/hello
返回结果示例:{"msg":"The connection is successful","password":null,"username":null}

2、【月】预测开店时间在2017年之前、非电商、经营情况正常、配货等级为OUTLET的所有老店店铺“当月”的销售额、并将结果写进ims测试数据库

接口:http://10.2.160.3:8877/month_not_serial  # 一次性运行所有店铺
接口:http://10.2.160.3:8877/month_not_serial?shop_no=URCN0075  # 选择性运行一个店铺

3、【周】预测开店时间在2017年之前、非电商、经营情况正常、配货等级为OUTLET的所有老店店铺“当周”的销售额、并将结果写进ims测试数据库

接口:http://10.2.160.3:8877/week_not_serial  #  一次性运行所有店铺
接口:http://10.2.160.3:8877/week_not_serial?shop_no=URCN0075  # 选择性运行一个店铺

4、【月系列】预测开店时间在2017年之前、非电商、经营情况正常、配货等级为OUTLET的所有老店店铺“当月系列”的销售额、并将结果写进ims测试数据库

接口:http://10.2.160.3:8877/month_serial/{serial}  #  一次性运行所有店铺,serial可选W、M、A
示例:
http://10.2.160.3:8877/month_serial/W
http://10.2.160.3:8877/month_serial/M
接口:http://10.2.160.3:8877/month_serial/{serial}?shop_no=URCN0075  #  选择性运行一个店铺,serial可选W、M
示例:
http://10.2.160.3:8877/month_serial/W?shop_no=URCN0075
http://10.2.160.3:8877/month_serial/M?shop_no=URCN0075

5、【周系列】预测开店时间在2017年之前、非电商、经营情况正常、配货等级为OUTLET的所有老店店铺“当周系列”的销售额、并将结果写进ims测试数据库

接口:http://10.2.160.3:8877/week_serial/{serial}  #  一次性运行所有店铺,serial可选W、M、A
示例:
http://10.2.160.3:8877/week_serial/W
http://10.2.160.3:8877/week_serial/M
接口:http://10.2.160.3:8877/week_serial/{serial}?shop_no=URCN0075  #  选择性运行一个店铺,serial可选W、M
示例:
http://10.2.160.3:8877/week_serial/W?shop_no=URCN0075
http://10.2.160.3:8877/week_serial/M?shop_no=URCN0075
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐