新闻推荐系统
b站链接
制作不易,6月后开源全部代码以及数据,记得一键三联哦!
开源代码:
github代码库
mysql:
链接:https://pan.baidu.com/s/1jLzfYbpsfHEjS4S17IyQnQ
提取码:1234
环境介绍
语言环境:
1.java1.8
2.scala2.1.1
IDE:
eclipse2015(java)
myeclipse2017(scala)
依赖环境:
maven3.6.3
sbt1.2.1
技术栈:
Java 1.8
springboot(web服务)
webmagic(爬虫)
seleinum(爬虫)
mysql(8.0)
linux shell(算法部署环境)
scala 2.1.1(使用jvm1.8)
spark2.0(计算框架)
spark mlib(机器学习库)
maven(java依赖管理)
sbt(scala依赖管理)
redis(消息队列)
jedis(redis-java api)
bt(宝塔-服务器管理面板)
jsch(linux shell -java api)
javax.mail(spring-email邮件管理)
架构草图
项目简介
项目意图为构建完整的新闻推荐系统 其中分为多个模块
推荐模块
一.冷启动模块
1.热度推荐
2.标签-自定义推荐
3.实时推荐
二.协同过滤模块
ALS隐语义模型-最小交叉二乘法 推荐模块
用户模块
一.用户模块
1.用户登录
2.用户注册
3.忘记密码
整个系统是帮学生写的毕设,但是尽量真实的实现现实中的业务场景.例如:新闻app中用户注册后自定义标签,和实时推荐新闻等功能.
同时又因为系统环境的限制,没有集群,只有一个性能有限的伪分布式服务器,带hdfs都费劲,不可能实现更多的实时功能.所以kafka(卡夫卡),spark-streaming,hbase这几个常用的高性能实时服务组件并没有用上(sparkstreaming虽然不是真正意义上的实时处理,但是微批次处理也够用了吧,不用fink那么高傲)
项目开发流程
一.算法部分
根据上面的逻辑开发每部分需要的算法,并记录rmse后开始下一步
二.算法部署部分
1.sbt打包assembly
2.linux 部署
3.linux测试
三.web服务开发
1.确定需求
2.创建实体类
3.创建数据库表
4.管理映射(mvc) mapper,service,contollor等
5.前后端交互
四.全流程搭建链接测试
1.web部署
2.linux算法服务部署
3.redis部署
五.总结
注意事项
相似度笛卡尔积只有8000,电影id大于1万的时候无法推荐
mysql只能存储关系型数据,非关系型数据要用mongodb,这里太麻烦了,用mysql字符串拼接代替
报错(gc尚未解决)
6w行x50元素矩阵笛卡尔积相似度计算,一算算一天然后报错.emm
Using Spark’s default log4j profile: org/apache/spark/log4j-defaults.properties
矩阵计算完成导入数据
Exception in thread “main” org.apache.spark.SparkException: Job aborted due to stage failure: Task 2 in stage 9.0 failed 1 times, most recent failure: Lost task 2.0 in stage 9.0 (TID 74, localhost, executor driver): java.sql.SQLNonTransientConnectionException: Communications link failure during rollback(). Transaction resolution unknown.
版权归原作者 帅气多汁你天哥 所有, 如有侵权,请联系我们删除。