Task01 熟悉新闻推荐系统基本流程
这两天因为事情较多,只听了直播课程了解了一下基本流程+跑通程序。
1.流程图
仅了解了大概,说实话有些流程还不太了解。(填坑,之后再补…
2.安装流程
这一块非常感谢峰哥!基本完全按照他的流程来的,没踩什么坑!撒花!开心!
2.1 使用软件版本
操作系统:Windows10
MySQL:8.0.23
Redis:5.0.14
Mongodb:5.0.5
Anaconda Python 4.8.3
Node.js:12.19.0
前端IDE:VSCode 1.63.0
2.2 前后端项目运行
2.2.1 前端
因为自身电脑之前安装了conda和vscode所以就直接使用了,需要改变是:
-
vscode切换到conda的python环境
-
安装node.js
-
访问页面
- VSCode切换conda python环境
先导入项目工程 VUE-NEWSINFO ,然后打开File-》preferences -》setting
搜索python.pythonPath,再红框中输入anaconda中对应环境的python命令的路径,如
“D:\Anaconda\envs\mlbook\bin\python”
这样我们的工程就在自己对应的虚拟环境中
- 打开终端安装node.js
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install
安装成功!
- 访问页面
因为是本地服务器,需要修改ip地址为127.0.0.1,打开文件package.json,修改第49行的IP和端口,修改内容如下:
"scripts":{
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "webpack-dev-server --open --port 8686 --contentBase src --hot --host 127.0.0.1",
"start": "nodemon src/main.js"
}
打开文件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"
在终端运行 npm run dev
2.2.2 后端
-
采用pycharm,导入项目news_rec_server,配置相应的环境,再终端安装相应的依赖包。
-
打开server.py,修改修改第233行的IP和端口,修改为host=‘127.0.0.1’, port=5000
-
修改项目路径配置文件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], '')
-
核对数据库配置文件dao_config.py
-
启动雪花算法服务,用于生成用户ID,启动命令如下:
snowflake_start_server --address=127.0.0.1 --port=8910 --dc=1 --worker=1
-
启动server.py程序
2.3 数据库安装配置
需要安装datagrip,比较方便连接不同的数据库,并且进行可视化界面显示
2.3.1 MySQL
电脑自带mysql,但是之前在Mysql Workbench中连接过本地的3306端口号,需要把这个连接先删除,或者在datagrip里面连接时修改端口号,但是为了方便起见,我就把之前的删除了。
这里遇见一个坑,我忘记我之前mysql root用户的密码了,为了重新配置密码搞了好久。
按照这篇博客https://www.cnblogs.com/jerrys/p/10626408.html,就可以重置。
其中找到MySQL的bin目录,可以在 电脑-服务-mysql服务双击 中找到目录。
接着就可以连接了,然后创建数据库loginfo和userinfo
2.3.2 Mongodb和Redis
下载峰哥微云中的这两个文件夹,直接解压缩。
- Mongodb的配置可以按照这个博客来:https://blog.youkuaiyun.com/m0_46217225/article/details/119109334?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163946311116780271525266%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163946311116780271525266&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-119109334.pc_search_mgc_flag&utm_term=%E6%9C%80%E6%96%B0mongdb%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE%2B%E6%B7%BB%E5%8A%A0%E5%88%B0%E6%9C%8D%E5%8A%A1&spm=1018.2226.3001.4187
- 然后在datagrip中直接连接即可
- Redis也是直接下载文件夹Redis-x64-5.0.14解压缩,然后运行redis-server.exe
看到这个界面就可以了
- 接着下载RedisDesktopManager,直接运行,连接默认的本地连接即可
2.4 启动程序
接下来的步骤完全按照峰哥的执行步骤执行,不会出错~
2.4.1 爬取新浪新闻
通过查看crawl_news.sh文件(文件路径:scheduler/crawl_news.sh),可知爬取新浪新闻的代码在如下目录/materials/news_scrapy/sinanews/run.py使用PyCharm的Run按钮,手动执行该代码,需要配置参数:—pages=30
2.4.2 更新物料画像
通过查看offline_material_and_user_process.sh文件(文件路径:scheduler/offline_material_and_user_process.sh),可知更新物料画像的代码在如下目录:materials/process_material.py,运行
2.4.3 更新用户画像
通过查看offline_material_and_user_process.sh文件(文件路径:scheduler/offline_material_and_user_process.sh),可知更新用户画像的代码在如下目录:materials/process_user.py使用PyCharm的Run按钮,手动执行该代码
2.4.4 离线将推荐列表和热门列表存入redis
通过查看run_offline.sh文件(文件路径:scheduler/run_offline.sh),可知离线将推荐列表和热门列表存入redis的代码在如下目录:recprocess/offline.py使用PyCharm的Run按钮,手动执行该代码