集成基于Spark书籍推荐系统的图书交易平台

  • 一、概述
    • 系统架构
    • 系统功能
    • 技术栈

一、概述

  在大数据的环境下,将推荐算法应用到图书交易平台上,目的在于通过个性化指导性推荐书籍和降低获取图书成本来提升用户阅读积极性及二手书利用率。与传统的离线推荐模型训练相比,系统采用离线的书籍信息、书评数据集训练推荐结果与用户隐式行为数据处理相结合,从而提高实时推荐的效果。在二手书买卖、借阅、图书馆书籍管理多种场景下都可以提供优质服务。

系统架构


  在考虑系统架构设计时,需考虑后期各个模块的可维护性和可拓展性。本系统包括三个主要的子系统模块,分别是前端展示系统、后端数据管理系统以及离线数据推荐与实时数据推荐模块,就具体系统架构如上图所示。
图中的系统总体架构设计包括展示层、应用层、数据处理层和存储层四个层次,每层详细信息如下:
(1)展示层:前端页面采用 ElementUI 样式 ui 框架和 Vue.js 框架技术进行展示页面设计,在 JS 脚本中嵌入埋点逻辑,实现用户行为采集;后端数据管理系统采用后端 Django 框架自带 Admin 交互式数据库操作系统。前后端分离的架构,数据交互采用 JSON 数据格式。
(2)应用层:后端应用主要包括用户登录、用户管理、书籍信息处理、交易实现等,采用基于 python 语言开发的 Django 后端框架, MVT 的设计模式下路由模块与视图模块实现 restful api 封装,自带 admin 交互式数据库管理系统与强大的ORM模块支持 sql 数据库增删改查操作,还具备 Security 、Session 、Auth 中间件为用户登录提供辅助,选择 Django 的原因主要考虑到其丰富的组件库与优雅的设计,十分符合系统敏捷开发与快速迭代的需求。
(3)数据处理层:该层主要包括离线数据处理及 实时数据处理模块。其中,离线处理模块在实验阶段 主要将 Book-Crossing 图书评分数据集的离线数据导入 HDFS 中,由 Spark Streaming 读取 HDFS 中的离线数据再经过 MLlib 中优化后的协同过滤算法模型迭代计算生成最终推荐结果存入 Hive 数据仓库中,再由 Spark SQL 对 Hive 中的数 据进行 TOP-N 排序,产生 TOP-N 推荐结果存入 MySQL 数据库中供展示层调用。而实时数据处理模块主要是对前端页面进行埋点,本系统的埋点范围主要包括页面跳转信息、用户在页面停留时间信息、点击信息、评分信息等构成用户隐式动作信息日志并存于 Nginx服务器日志文件中,由 pyinotify 数据采集工具采集到服务器中的日志文件上传到 Kafka 消息队列中,接下来由 Spark Streaming 对 Kafka 消息队列中的数据进行数据流处理。同样通过算法模型将最终结果存入 MySQL 数据库中,应用层可读取实时结果数据展示在个性化推荐栏中。
(4)存储层:数据存储主要包括持久层软件有 HDFS、MySQL 与 Hive 数据仓库工具,为展示层、应用层、数据处理层提供数据支撑。

系统功能

技术栈

涉及技术 掌握程度 开发周期 替代方案
Vue.js+ElementUI前端开发 有前端开发经验 2 weeks 无风险
python Django后端开发 有后端开发经验 2 weeks 无风险
pyinotify 日志采集工具开发 功能比较简单 2 days 无风险
kafka消息队列集群搭建使用 无开发经验,但有docker集群搭建经验 1 week 消息队列主要在于部署学习,替代方案为redis实现简单消息队列或后端触发kafka
Spark 框架使用 Java基础薄弱,无开发经验 2 months 风险点主要为协同过滤算法优化以及Spark集群搭建使用,需要大量学习成本,替代方案为python surprise推荐框架
HDFS分布式文件系统 无使用经验 1 week 主要风险点在配置使用,替代方案为io处理
Hive数据仓库 无使用经验 1 week 主要风险点在配置使用,替代方案为Mysql数据库
Mysql数据库 有使用经验 2 day 无风险
Nginx服务器部署 有使用经验 2 day 无风险
uwsgi服务器部署 有使用经验 1 day 无风险

集成改进的Spark书籍推荐系统的图书交易平台相关推荐

  1. 基于JAVA用户行为自动化书籍推荐系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA用户行为自动化书籍推荐系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA用户行为自动化书籍推荐系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构 ...

  2. java-php-python-ssm基于用户行为的自动化书籍推荐系统计算机毕业设计

    java-php-python-ssm基于用户行为的自动化书籍推荐系统计算机毕业设计 java-php-python-ssm基于用户行为的自动化书籍推荐系统计算机毕业设计 本源码技术栈: 项目架构:B ...

  3. Java+Jsp+Mysql实现简单在线图书推荐系统 个性化图书推荐系 java实现基于用户的协同过滤推荐算法 源代码下载 算法实现 Spring+Struts+Hibernate(SSH)开发框架

    Java+Jsp+Mysql实现简单在线图书推荐系统 个性化图书推荐系统(基于用户的协同过滤推荐算法) 一.项目简介 1.开发工具和实现技术 MyEclipse10,jdk1.7,mysql5.5,t ...

  4. Kafka与Spark集成系列二Spark的安装及简单应用

    原 [Kafka与Spark集成系列二] Spark的安装及简单应用https://blog.csdn.net/u013256816/article/details/82082019版权声明:本文为博 ...

  5. 主页面加载书籍分类及图书绑定

    主页面加载书籍分类及图书绑定 书籍分类动态加载 书籍展示 图片映射上传 书籍分类动态加载 如图从数据库获取数据加载: 数据库单独有一张表,只需要查询展示就可以了: js文件 $.ajax({url:c ...

  6. asp.net1042-多媒体图书交易平台#毕业设计

    项目编号:asp.net1042-多媒体图书交易平台#毕业设计 运行环境:VS+SQL 开发工具:VS2010及以上版本 数据库:SQL2008及以上版本 使用技术:HTML+JS+HTML 开发语言 ...

  7. asp.net968-基于Web的校园二手图书交易平台#毕业设计

    项目编号:asp.net968-基于Web的校园二手图书交易平台#毕业设计 运行环境:VS+SQL 开发工具:VS2010及以上版本 数据库:SQL2008及以上版本 使用技术:HTML+JS+HTM ...

  8. [Kafka与Spark集成系列一] Spark入门

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  9. apache spark_如何将自定义数据源集成到Apache Spark中

    apache spark 如今,流数据是一个热门话题,而Apache Spark是出色的流框架. 在此博客文章中,我将向您展示如何将自定义数据源集成到Spark中. Spark Streaming使我 ...

最新文章

  1. c程序怎么改为java程序_如何将Java程序的入口点更改为C签名?
  2. [vue] SPA首屏加载速度慢的怎么解决?
  3. Flowable 菜单说明
  4. docker 安装mysql5.6
  5. vux页面转换html,vue vux 怎么用 样式变量 修改主题配色
  6. 页面时间日期星期实时显示
  7. sklearn模型支持输入list吗?
  8. 下列关于线程调度的叙述中,错误的是()。
  9. JVM 类加载机制详解
  10. c语言输入字符串_我们一起学C语言(四)
  11. 偶然翻开旧日记本,发现了好多的情诗!!!!
  12. 把华为OLT主控设置为上联的方法
  13. python异常类型大全
  14. WPF 启动屏幕键盘
  15. Unity中游戏的存档与读档
  16. R语言-岭回归的代码与案例解读
  17. Exoplayer简介
  18. 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
  19. Vue的video-player的视频无法加载出来,vue视频插件;显示叉号; The media could not be Loaded,
  20. macbook买后配置

热门文章

  1. springBoot整合redis单节点、redis哨兵、redis集群配置及redisClient区别
  2. fastadmin表格直接添加序号
  3. Spring AOP切面实现:异常处理
  4. 在父div中使文字垂直居上、垂直居下
  5. Vue 的双向数据绑定原理解析
  6. 什么是存储过程,使用存储过程的好处?
  7. 癌之所以为绝症,是因为药方找错了方向
  8. 算法简介:二分图最大匹配
  9. Hadoop之父祝贺黄色小象十岁生日快乐
  10. 地图下钻、地图点聚合