版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011254180/article/details/80006453
本次项目是基于大数据过滤引擎的电影推荐系统–“懂你”电影网站,包含了爬虫、电影网站(前端和后端)、后台管理系统以及推荐系统(Spark)。

项目代码托管于github,大家可以自行下载。

一、爬虫
开发环境: pycharm + python3.6

软件架构: mysql + scrapy

运行环境: 本次爬取的内容在外网,所以需先翻墙后才能成功运行。

项目架构:

二、电影网站
开发环境: IntelliJ IDEA + maven + git + linux + powerdesigner

软件架构: mysql + mybatis + spring + springmvc

项目描述: 懂你电影推荐网站是一个基于SSM框架的web项目,类似当前比较流行的豆瓣。用户可以在网站上浏览电影信息和查询电影,并且网站会根据用户的浏览记录给用户进行实时的电影推荐。现已将网站部署在 http://115.159.204.68 网站上,感兴趣的朋友可以自行查看。Git的安装与IDEA和github的集成可以参考博客。

项目架构:

网站展示:

三、后台管理系统
开发环境: IntelliJ IDEA + maven + git + linux + powerdesigner

软件架构: mysql + mybatis + spring + springmvc + easyui

项目描述: 后台管理系统主要对用户信息和电影信息进行管理,如添加删除电影信息和完成用户信息的完善。其中为了更好地保存电影的图片信息,搭建了图片服务器,关于图片服务器FastDFS的搭建可参考博客。后台系统也布置在服务器上,感兴趣的朋友可以通过地址 http://115.159.204.68:8080/ 访问,为大家提供的测试账号为 test,密码为88888888。

项目架构:

网站展示:

四、推荐系统(Spark)
开发环境: IntelliJ IDEA + maven + git + linux

软件架构: hadoop + zookeeper + flume + kafka + nginx + spark + hive + mysql

项目描述: 通过在电影网站系统埋点,获取到用户的点击事件(如用户喜欢哪部电影或对某部电影的评分)并将信息传至推荐系统,推荐系统根据该信息做出相应的处理,将推荐结果存入到mysql数据库中,web前端通过查询数据库将推荐的电影展示给用户。推荐流程如下:

项目架构:

具体步骤:

1.服务器规划(linux镜像为centos6):

spark1(ip 192.168.13.134),分配8G内存,4核
spark2(ip 192.168.13.135),分配6G内存,4核
spark3(ip 192.168.13.136),分配6G内存,4核
2.电影数据集,地址: 本次下载的为1m大小的数据集

3.环境的搭建:

1)hdfs搭建

spark1上搭建namenode,secondary namenode,datanode
spark2上搭建datanode
spark3上搭建datanode
2)yarn搭建

spark1上搭建resourcemanager,nodemanager
spark2上搭建nodemanager
spark3上搭建nodemanager
3)mysql搭建,在spark2上搭建

4)hive搭建,在spark1上搭建

5)spark集群搭建,搭建standalone模式,spark1为master,其他为worker

4.数据的清洗: (上传数据至hdfs中,hdfs操作)

1)启动 hdfs: [root@spark1 ~]# start-dfs.sh

2)启动 yarn: [root@spark1 ~]# start-yarn.sh

3)启动 mysql: [root@spark2 ~]# service mysqld start

4)启动 hive: [root@spark1 ~]# hive –service metastore

5)启动 spark集群: [root@spark1 spark-1.6.1]# ./sbin/start-all.sh

6)代码(com.zxl.datacleaner.ETL)打包上传(spark-sql与hive集成)

代码位于 package com.zxl.datacleaner.ETL,打包为 ETL.jar
运行代码 spark-submit –class com.zxl.datacleaner.ETL –total-executor-cores 2 –executor-memory 2g lib/ETL.jar
成功于hive中建表
5.数据的加工, 根据ALS算法对数据建立模型(ALS论文)

1)启动 hdfs: [root@spark1 ~]# start-dfs.sh

2)启动 yarn: [root@spark1 ~]# start-yarn.sh

3)启动 mysql: [root@spark2 ~]# service mysqld start

4)启动 hive: [root@spark1 ~]# hive –service metastore

5)启动 spark集群: [root@spark1 spark-1.6.1]# ./sbin/start-all.sh

6)代码(com.zxl.datacleaner.RatingData)打包上传,测试建立模型

6.建立模型, 根据RMSE(均方根误差)选取较好的模型

1)启动上述的服务

2)代码(com.zxl.ml.ModelTraining)打包上传,建立模型

注:com.zxl.ml.ModelTraining2中代码训练单个模型,其中参数 rank=50, iteration = 10, lambda = 0.01

代码位于 package com.zxl.ml.ModelTraining,打包为 Spark_Movie.jar
运行代码 spark-submit –class com.zxl.ml.ModelTraining lib/Spark_Movie.jar
7.产生推荐结果

1)启动上述的服务

2)代码(com.zxl.ml.Recommender)打包上传,产生推荐结果

8.数据入库, 存储为所有用户推荐的电影结果,mysql中存入的格式为(userid, movieid,rating)

1)启动上述的服务

2)代码(com.zxl.ml.RecommendForAllUsers)打包上传,数据入库

运行代码 spark-submit –class com.zxl.ml.RecommendForAllUsers –jars lib/mysql-connector-java-5.1.35-bin.jar lib/Spark_Movie.jar
9.实时数据的发送

1)安装nginx,用来接收电影网站上用户的点击信息,写入本地文件

2)安装flume,实时监控本地文件,将数据发送至kafka消息队列中

10.实时数据的接收处理 ,如果打包到服务器运行错误,也可在本地IDEA上运行

1)安装zookeeper

2)安装kafka,用来接收发送数据

3)启动上述的服务

4)启动zookeeper: [root@spark1 soft]# zkServer.sh start

4)启动flume:[root@spark1 flume]# bin/flume-ng agent -c ./conf/ -f conf/flume-conf.properties -Dflume.root.logger=DEBUG,console -n a1

5)启动kafka: [root@spark1 kafka_2.11-0.10.1.0]# bin/kafka-server-start.sh config/server.properties

6)代码(com.zxl.datacleaner.PopularMovies2)运行,用于为没有登录或新用户推荐,默认推荐观看最多的5部电影

7)代码运行(需指定jar包 kafka-clients-0.10.1.0.jar)

spark-submit –class com.zxl.streaming.SparkDrStreamALS –total-executor-cores 2 –executor-memory 1g –jars lib/kafka-clients-0.10.1.0.jar lib/Spark_Movie.jar
————————————————
版权声明:本文为CSDN博主「xl.zhang」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011254180/article/details/80006453

转:基于Spark的电影推荐系统(包含爬虫项目、web网站、后台管理系统以及spark推荐系统)相关推荐

  1. 基于Spark的新闻推荐系统,包含爬虫项目、web网站以及spark推荐系统

    下载地址:https://download.csdn.net/download/ouyangxiaobai123/22174377 项目介绍: 基于Spark的新闻推荐系统,包含爬虫项目.web网站以 ...

  2. 基于 java Swing 客户端 和 Spring Boot/Spring Cloud Alibaba 后台管理系统

    基于 java Swing 客户端 和 Spring Boot/Spring Cloud & Alibaba 后台管理系统 基于 java Swing 客户端 和 Spring Boot/Sp ...

  3. 基于java springboot的小说阅读微信小程序含后台管理系统源码

    系统运行环境 开发工具 eclipse(idea),mysql5.7(大于5.5),navicat,小程序开发工具 硬件要求 windows操作系统 cpu:2.4GHz 内存:4G 硬盘:100G ...

  4. 基于Laravel开发博客应用系列 —— 构建博客后台管理系统

    一个完整的博客应用不能没有后台管理系统.所以在本节中我们将继续完善博客应用 -- 开发后台管理系统. 1.创建路由 在上一节十分钟创建博客项目中,已经设置过了 app/Http/routes.php, ...

  5. 基于ThinkPHP6的网站后台管理系统

    项目介绍 一款 PHP 语言基于 ThinkPhp6.x.Layui.MySQL等框架精心打造的一款模块化.插件化.高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开 ...

  6. 基于SpringBoot的网站后台管理系统

    项目介绍 一款 Java 语言基于 SpringBoot2.x.Layui.Thymeleaf.MybatisPlus.Shiro.MySQL等框架精心打造的一款模块化.插件化.高性能的前后端分离架构 ...

  7. React项目-点餐后台管理系统-react框架实现后台管理系统(包含权限处理)--新手入坑必看!(一)

    点餐后台管理系统(react) 一.前言 二.项目介绍 三.相关技术 四.项目实现的功能 4.1.功能分析 4.2.项目结构 4.3.axios封装及mock数据 4.3.1.axios封装 4.3. ...

  8. 多款非常优秀的基于 vue3.x 、Native UI、TypeScript 的中后台管理系统模板

    前言 今天给大家分享5款开源且非常优秀的基于 vue3.x . Native UI 的中后台管理系统模板,助力大家快速开发一个中后台管理系统 Soybean Admin 简介 Soybean Admi ...

  9. 基于MUI的电影新闻的webapp项目开发

    写在前面:之前,本人在自学webapp的过程中,一直没有找到一份比较完整的开发步骤文档,都是一些零零散散的文档,走了很多弯路,也耽误了很多的时间,其中尝试了多种框架,感觉MUI这种H5+的模式是比较适 ...

  10. 基于springboot2.0跟layui构建的前后端分离后台管理系统

    Active4j-boot是基于SpingBoot2.0轻量级的java快速开发框架.以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis Plus为数据 ...

最新文章

  1. 定义一个复数类Complex,重载运算符+
  2. android百度地图覆盖物异步加载图片,Android 百度地图marker中图片不显示的解决方法(推荐)...
  3. 入行IT,为什么建议你学Java?
  4. layui获取checkbox选中值_小程序之十二 获取多选按钮数值及后续想法
  5. PPS2013校园招聘笔试题
  6. long long , __int64 范围
  7. php外联样式,css外联样式不起作用怎么办
  8. 关联分析(Association analysis)
  9. 《那些年啊,那些事——一个程序员的奋斗史》——79
  10. git设置全局账号密码_jenkins2.222使用之二、总体设置
  11. PTA—考试座位号(C语言)
  12. oracle 常用语句2
  13. 双非一本考研湖南大学计算机技术初试经验分享
  14. TeamTalk 线程池详解
  15. mybatis学习(二)
  16. java 新浪短链接_java高仿新浪微博短链接地址生成工具ShortUrlGenerator.java | 学步园...
  17. sit是什么环境_测试环境是什么_搭建测试环境要遵循什么原则?
  18. MySQL-7 DDL约束 标识列 TCL事务控制语言 视图view
  19. UEFI开发历程1—edk2开发环境的搭建以及在虚拟机QEMU运行OVMF固件
  20. 媒体人都在使用的全能超强视频格式转换器 - OmniConverter (Mac版)

热门文章

  1. Python通过SSH下载远程服务器文件
  2. 【BFS】哈理工OJ-2074-逃生
  3. 全球半导体产业60年兴衰启示录!
  4. 要重新学习线性代数了!
  5. U盘安装系统 从此告别光盘
  6. Drools规则引擎使用
  7. java课程设计员工信息管理系统,javaweb课程设计之员工信息管理系统
  8. 三创赛优秀作品_创新藏在每一个细节里———记第三届3S杯全国大学生物联网技术与应用“三创”大赛一等奖获奖作品...
  9. 勒让德多项式学习笔记
  10. WINCE系统的PDA开发 xp系统+VS2008