Datawhale第32期组队学习——task0:新闻推荐系统项目搭建

0 项目运行环境

0.1 获取软件安装包
软件安装包地址:https://share.weiyun.com/u3ZIjZfg

0.2 使用软件版本
操作系统:Windows10
MySQL:8.0.25
Redis:5.0.14
Mongodb:5.0.5
Mini-Conda Python 3.8
Node.js:16.13.1
前端IDE:WebStorm 2021.1

后端IDE:PyCharm Professional 2021.1

访问MySQL和Mongodb的数据库工具:DataGrip 2021.1

访问Redis的工具:redis-desktop-manager-0.9.9.99.exe

1 项目下载与IDE导入

项目地址:
https://github.com/datawhalechina/fun-rec
1.1 前端项目导入
使用WebStrom IDE工具,导入前端项目

1.2 后端项目导入
使用PyCharm IDE工具,导入后端项目

2 数据库安装与使用(Windows10)

2.1 MySQL数据库安装与使用

卸载mysql:帖子1帖子2
参考胡瑞峰文档和帖子《Windows环境安装 安装mysql-8.0.18-winx64详细图解(zip包版本)》

2.0 centos装的mysql8无法启动,运行service mysql start显示这个命令找不到

#不装这个下面安装报错,缺少安装包
wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm
rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

yum install -y mariadb-server
2.1.1 MySQL数据库安装

(1)安装包下载
下载地址:https://dev.mysql.com/downloads/mysql/
安装包版本:8.0.25

(2)配置环境变量
变量名:MYSQL_HOME
变量值:D:\mysql-8.0.25-winx64
在桌面上点击"此电脑–右击–选择属性–选择高级–环境变量",上方点新建系统变量

在这里插入图片描述

在下方环境变量PATH添加:%MYSQL_HOME%\bin
在这里插入图片描述

(3)生成data文件
在解压后mysql-8.0.18-winx64的文件下创建my.ini配置文件
具体内容如下
将下面的内容复制到刚创建的文件中 ,主要需要修改的字段为basedir和datadir
basedir=自己的mysql目录
datadir=mysql的data存储的目录

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:/Java/Database/mysql-8.0.18-winx64
# 设置mysql数据库的数据的存放目录 (data文件夹如果没有的话会自动创建)
datadir=D:/Java/Database/mysql-8.0.18-winx64/data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

在这里插入图片描述

打开CMD,进入D:\mysql-8.0.25-winx64\bin目录,执行如下命令初始化创建data目录。
cd D:\mysql-8.0.25-winx64\bin
mysqld --initialize-insecure --user=mysql

(5)启动MySQL服务,并配置成系统服务
在这里插入图片描述

使用系统管理员身份,启动CMD,执行如下命令将MySQL配置成Windows系统服务:

mysqld -install --serviceName "MySQL"
Service successfully installed.

安装mysql服务方便以后启动:

D:\Java\Database\mysql-8.0.18-winx64\bin>mysqld.exe install mysql
Service successfully installed

在服务列表中能找到刚刚安装的mysql服务,可设置其启动的方式

右键单击此电脑打开任务管理器的服务,启动MySQL服务。
在这里插入图片描述

在这里插入图片描述

net start mysql:启动mysql服务
net stop mysql: 停止mysql服务

# 启动mysql服务需要使用管理员角色
# 通过net start命令启动mysql服务 (net stop mysql --终止mysql服务命令)
  D:\Java\Database\mysql-8.0.18-winx64\bin>net start mysql
  mysql 服务正在启动 .
  mysql 服务已经启动成功
2.1.2 设置root用户密码

(1)登录MySQL
在CMD中,输入以下命令登录MySQL(新安装的MySQL,可以无密码登录):
mysql -u root -p

(2)设置root用户密码
输入如下命令,键入回车后执行SQL语句,设置root用户密码为123456:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

(3)刷新保存配置
输入如下命令,保存配置并生效:flush privileges;
输入quit退出数据库。

2.1.3 使用DataGrip连接MySQL数据库

DataGrip2021安装参考帖子1帖子2
(1)打开DataGrip工具,新建MySQL连接

在这里插入图片描述

(2)配置MySQL连接
在这里插入图片描述

(3)连接MySQL数据库
第一次连接mysql会报错,提示你缺少驱动,点击Download Driver Files就会自动帮你安装连接驱动。在这里插入图片描述
(4)更换中文语言教程,参考此贴
(5)创建userinfo和loginfo数据库
新建一个console窗口,在mysql窗口中输入如下SQL语句,创建数据库:
create database userinfo;
create database loginfo;
(此时不能创建mongodb连接,因为还没装mongodb,也没有启动。装了也连不上)

2.2 MongoDB数据库安装与使用
参考帖子《【2021/8/19-最新教程】Windows安装MongoDB及配置(超详细)》
2.2.1 MongoDB数据库安装
(1)安装包下载
下载地址:https://www.mongodb.com/try/download/community
安装包版本:5.0.5

(2)配置环境变量
在PATH下添加环境变量:D:\mongodb-win32-x86_64-windows-5.0.5\bin

(3)创建目录及配置文件
在bin目录同级的目录创建data目录,继续在data目录下创建db以及log,log目录中还需要创建mongod.log文件。
在这里插入图片描述

然后在bin目录的同级目录创建mongod.cfg文件:

systemLog:
    destination: file
    path: D:\mongodb-win32-x86_64-windows-5.0.5\data\log\mongod.log
storage:
    dbPath: D:\mongodb-win32-x86_64-windows-5.0.5\data\db
net:
    port: 27017
  • path是配置打印日志的目录
  • dbpath是配置数据的存储位置
  • port是配置的端口号

(4)启动MongoDB服务,并配置成系统服务

使用系统管理员身份,启动CMD,在D:\mongodb-win32-x86_64-windows-5.0.5\bin目录下执行如下命令将MongoDB配置成Windows系统服务:

mongod --config D:\mongodb-win32-x86_64-windows-5.0.5\mongod.cfg --install --serviceName "MongoDB"

打开任务管理器的服务,查看MongoDB服务。
此时就可以通过net start MongoDBnet stop MongoDB以及net delete MongoDB开启、关闭、删除MongoDB。

2.2.2 使用DataGrip连接MongoDB数据库
(1)打开DataGrip工具,新建MongoDB连接

(2)配置MongoDB连接

(3)连接MongoDB数据库
连接MongoDB数据库,在console中输入语句创建两个库(由于库中没有数据,在MongoDB中还看不到这两个库,等完成项目部署并运行调试之后,刷新MongoDB之后会出来这两个库):
use NewsRecSys;
use SinaNews;

2.3 Redis数据库安装与使用

2.3.1 Redis数据库安装
(1)安装包下载
下载地址:https://github.com/tporadowski/redis/releases
安装包版本:5.0.14

(2)启动Redis服务,并配置成系统服务
使用系统管理员身份,启动CMD,执行如下命令将Redis配置成Windows系统服务:

cd D:\Redis-x64-5.0.14#命令地址
redis-server.exe --service-install redis.windows.conf --serviceName "Redis5.0.14"
#或者运行下面这个
redis-server --service-install redis.windows.conf --loglevel verbose

打开任务管理器的服务,查看Redis服务。

启动Redis:net start Redis

2.3.2 使用redis-desktop-manager连接Redis数据库

参考《Redis可视化工具Redis Desktop Manager使用教程》
《Redis DeskTop Manager 使用教程》

(1)安装Redis Desktop Manager软件
下载地址:从腾讯微云中获取,参见0.1节

(2)连接Redis数据库
在这里插入图片描述
最后点ok就行。点击左侧Redis-@localhost出现下拉列表:
在这里插入图片描述

3 前端项目运行

安装WebStorm-2021
在这里插入图片描述

导入前端项目:open打开vue文件夹就行
在这里插入图片描述

3.1 安装依赖包

安装
安装node
在这里插入图片描述

首先安装淘宝的npm,在Terminal中执行如下命令:

npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install

3.2 修改前端访问IP和端口

打开文件package.json,修改第49行的IP和端口,修改内容如下:

"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "dev": "webpack-dev-server --open --port 8686 --contentBase src --hot --host 0.0.0.0",
  "start": "nodemon src/main.js"
},
#锐锋是127.0.0.1

127.0.0.1表示游览器的访问IP(也称为本地IP),8686表示访问端口

3.3 修改访问后端API接口的IP和端口

打开文件main.js,文件路径:src/main.js,修改第23行的IP和端口,修改内容如下:

// Vue.prototype.$http = axios
Vue.use(VueAxios, axios);
// axios公共基路径,以后所有的请求都会在前面加上这个路径
// axios.defaults.baseURL = "http://10.170.4.60:3000";
// axios.defaults.baseURL = "http://47.108.56.188:3000";
axios.defaults.baseURL = "http://127.0.0.1:5000"

127.0.0.1表示后端项目的访问IP(也称为本地IP),5000表示访问端口

3.4 运行前端项目

在Terminal中执行命令运行前端项目:npm run dev
在这里插入图片描述

浏览器会自动访问地址:http://127.0.0.1:8686/#/
在这里插入图片描述

通过打开“开发者工具”,调节设备工具栏,显示正常比例的页面
在这里插入图片描述

4 后端项目运行

4.1 配置环境,安装依赖

  1. 安装conda环境,并创建虚拟环境
    创建指定路径的Python环境:conda create --prefix venv python=3.8

虚拟环境位置:
在这里插入图片描述
包装在libs下面的site-pakeages:
在这里插入图片描述
在这里插入图片描述

在PyCharm中,设置Python解释器
在这里插入图片描述

  1. 安装依赖文件
    在Terminal中执行命令安装依赖包:pip install -r requirements.txt

在这里插入图片描述

4.2 修改端口,配置文件

  1. 修改后端项目的IP和端口
    打开文件server.py,修改第233行的IP和端口,修改内容如下:
if __name__ == '__main__':
    # 允许服务器被公开访问
    # app.run(debug=True, host='0.0.0.0', port=3000, threaded=True)
    # 只能被自己的机子访问
    app.run(debug=True, host='127.0.0.1', port=5000, threaded=True)

127.0.0.1表示后端提供给前端的IP(也称为本地IP),5000表示端口。

  1. 修改项目路径配置文件proj_path.py
    因为没有配置home路径,所以改为读取项目地址。修改项目路径配置文件proj_path.py,文件路径:conf/proj_path.py
# home_path = os.environ['HOME']
# proj_path = home_path + "/fun-rec/codes/news_recsys/news_rec_server/"
proj_path = os.path.join(sys.path[1], '')
  1. 核对数据库配置文件dao_config.py
    打开数据库配置文件dao_config.py,文件路径:conf/dao_config.py,核对以下配置:
# MySQL默认配置
mysql_username = "root"
mysql_passwd = "123456"
mysql_hostname = "localhost"
mysql_port = "3306"

# MongoDB配置
mongo_hostname = "127.0.0.1"
mongo_port = 27017

# Redis配置
redis_hostname = "127.0.0.1"
redis_port = 6379

4.3 启动雪花算法服务

在Terminal中执行命令启动雪花算法服务,用于生成用户ID,启动命令如下:

snowflake_start_server --address=127.0.0.1 --port=8910 --dc=1 --worker=1

4.4 创建logs目录

在根目录下,创建logs目录,如下图所示:
在这里插入图片描述

4.5 启动后端项目

启动server.py程序(注:在此之前,必须启动数据库并创建数据库,详见2.1.3节和2.2.2节),执行如下命令:
python server.py
在这里插入图片描述

5 项目整体运行与调试

注册用户

5.1 爬取新浪新闻

通过查看crawl_news.sh文件(文件路径:scheduler/crawl_news.sh),可知爬取新浪新闻的代码在如下目录
/materials/news_scrapy/sinanews/run.py
使用PyCharm的Run按钮,手动执行该代码,需要配置参数:
—pages=30

在这里插入图片描述
在这里插入图片描述

5.2 更新物料画像

通过查看offline_material_and_user_process.sh文件(文件路径:scheduler/offline_material_and_user_process.sh),可知更新物料画像的代码在如下目录:
materials/process_material.py
使用PyCharm的Run按钮,手动执行该代码
在这里插入图片描述

5.3 更新用户画像

通过查看offline_material_and_user_process.sh文件(文件路径:scheduler/offline_material_and_user_process.sh),可知更新用户画像的代码在如下目录:
materials/process_user.py
使用PyCharm的Run按钮,手动执行该代码
在这里插入图片描述

5.4 清除前一天redis中的数据,更新最新今天最新的数据

通过查看offline_material_and_user_process.sh文件(文件路径:scheduler/offline_material_and_user_process.sh),可知清除前一天redis中的数据,更新最新今天最新的数据的代码在如下目录:
materials/update_redis.py
使用PyCharm的Run按钮,手动执行该代码

在这里插入图片描述

5.5 离线将推荐列表和热门列表存入redis

通过查看run_offline.sh文件(文件路径:scheduler/run_offline.sh),可知离线将推荐列表和热门列表存入redis的代码在如下目录:
recprocess/offline.py
使用PyCharm的Run按钮,手动执行该代码
在这里插入图片描述

5.6 重新登录用户查看新闻

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神洛华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值