Task01:熟悉新闻推荐系统的基本流程
0.代码版本
该专栏的博客当中涉及的所有代码,均为组队学习期间的版本,大概在2021年12月12日左右,某一个可能的参考版本链接如下:
https://github.com/datawhalechina/fun-rec/tree/9bcfafaae339c443cc7911b9070bf52adef9e994
1.系统信息
首先,关于我服务器的系统信息
[root@VM-0-12-centos news_rec_server]# uname -a
Linux VM-0-12-centos 3.10.0-1160.6.1.el7.x86_64 #1 SMP Tue Nov 17 13:59:11 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@VM-0-12-centos news_rec_server]# uname -r
3.10.0-1160.6.1.el7.x86_64
[root@VM-0-12-centos news_rec_server]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
2.python
环境
然后去装后端环境,先处理python
conda create -n news python=3.7
conda activate news
pip install -r requirements.txt
3.MySQL
数据库
根据1的步骤,装MySQL
,上来就报错
[root@VM-0-12-centos opt]# rpm -qa | grep mariadb
error: rpmdb: BDB0113 Thread/process 16720/140613789161536 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 - (-30973)
error: cannot open Packages database in /var/lib/rpm
error: rpmdb: BDB0113 Thread/process 16720/140613789161536 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages database in /var/lib/rpm
查阅2,方案如下:
[root@VM-0-12-centos opt]# cd /var/lib/rpm
# [root@VM-0-12-centos opt]# ll
# 删除之前可以先查看
[root@VM-0-12-centos opt]# rm -rf _db*
[root@VM-0-12-centos opt]# rpm --rebuilddb
后面就正常执行一些命令
rpm -ivh mysql-community-common-8.0.27-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.27-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.27-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.27-1.el7.x86_64.rpm --nodeps --force
注意结尾处的force
前面有两个英文的-
,原博客当中第一句和第四局只写了一个中文的—
接着继续报错:
[root@VM-0-12-centos opt]# mysqld --initialize
mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
参考3进行处理:
yum install -y libaio
yum -y install numactl
往后就正常的设置密码一类的,注意要与服务端的代码保持一致:
# fun-rec/codes/news_recsys/news_rec_server/conf/dao_config.py
# 默认配置
mysql_username = "root"
mysql_passwd = "123456"
mysql_hostname = "localhost"
mysql_port = "3306"
4.MongoDB
按照教程4进行安装,使用默认端口,没有问题
[root@VM-0-12-centos mongodb]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.10.tgz
[root@VM-0-12-centos mongodb]# export PATH=/opt/mongodb/mongodb-linux-x86_64-rhel70-4.4.10/bin:$PATH
这里不知道为什么,只对当前的shell
有效,开新的shell
就无法使用mongo
命令
所以我将export "PATH=/opt/mongodb/mongodb-linux-x86_64-rhel70-4.4.10/bin"
添加到了~/.bashrc
文件的末尾
5.Redis
按照教程下载源代码进行编译安装,没有问题5
[root@VM-0-12-centos redis-4.0.9]# make PREFIX=/opt/redis-4.0.9 install
6.Node.js
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash
sudo yum -y install nodejs
如果使用包管理器安装,可以用命令卸载;压缩包安装则需要手动卸载:8
yum remove nodejs npm -y
我在安装的过程当中可能出了一点问题,不知道怎地就更改了package.json
。更神奇的是,这不是我手动更改的,可能输错了某个命令。后来恢复原代码之后,一遍成功。
7. 复现结果
8. 后续报错
OSError: [Errno 98] Address already in use
这个报错应该是服务器端没有正常结束,导致端口还在占用当中,所以重启服务器端的生活无法使用端口。解决的办法就是找到PID
,然后杀死这个进程。
netstat -tlnp | grep 8686
# 查看使用8686端口的进程
详见9
“Can’t connect to MySQL server on ‘localhost’ ([Errno 111] Connection refused)”
这个是MySQL
数据库相关的问题,我这里的原因是数据库莫名关闭了,重启就好。
service mysqld start
当时我是先按照10尝试登录账户,发现不行,报错:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (111)
然后查阅11,感觉是MySQL
没有启动
参阅12重启即可
记录error: rpmdb: BDB0113 Thread/process 61227/140631941699392 failed: BDB1507 Thread died in Berkeley ↩︎
centos7安装mysql8报错mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared ↩︎
fun-rec/docs/第二章 推荐系统实战/2.2新闻推荐系统实战/docs/2.2.1.2 MongoDB基础.md ↩︎
如何解决远程连接mysql出现Can’t connect to MySQL server on (111 “Connection refused”)的问题 ↩︎
连接本地mysql时出现2003-Can’t connect to MySql server on ‘localhost’(10061)错误 ↩︎