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

参照6使用yum安装,或者也可以下载压缩包进行安装7

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重启即可


  1. Centos7.6.1810安装MySQL8.0.27图文详解 ↩︎

  2. 记录error: rpmdb: BDB0113 Thread/process 61227/140631941699392 failed: BDB1507 Thread died in Berkeley ↩︎

  3. centos7安装mysql8报错mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared ↩︎

  4. fun-rec/docs/第二章 推荐系统实战/2.2新闻推荐系统实战/docs/2.2.1.2 MongoDB基础.md ↩︎

  5. CentOS7上安装Redis4.0.9 ↩︎

  6. yum安装新版nodejs ↩︎

  7. Node.js 安装配置 ↩︎

  8. centos node卸载 ↩︎

  9. OSError: [Errno 98] Address already in use解决办法 ↩︎

  10. 如何解决远程连接mysql出现Can’t connect to MySQL server on (111 “Connection refused”)的问题 ↩︎

  11. 连接本地mysql时出现2003-Can’t connect to MySql server on ‘localhost’(10061)错误 ↩︎

  12. 如何在linux下启动mysql数据库_在linux系统下启动 mysql数据库操作 ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值