手把手教你搭建电影推荐系统

2018-01-11 spark hdfs scala

Posted by koko on January 11, 2018

手把手教你如何搭建电影推荐系统

一、 SCALA开发环境部署

1、 安装用于scala开发的IntelliJ IDEA

scala

2、 安装完成之后启动idea,登录 http://idea.lanyus.com/ ,获得注册码,并将注册码粘贴到图中空白处。

scala

3、 安装scala插件,找到settings-plugins-install plugin from disk,找到本地需要安装的插件zip,然后再重启软件,即完成scala开发环境的搭建。

二、 Scala语言环境的部署

1、 将scala语言环境包放在c盘根目录

2、 然后新建变量SCALA_HOME,变量值为scala语言包的路径即 C:\scala

scala

3、 再在系统环境变量path中,添加%SCALA_HOME%\bin.

4、 在cmd中输入scala验证是否安装好scala

scala

三、 推荐系统定义

推荐系统是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品。

四、 推荐系统原理

推荐模型

用户的角度 :帮助用户快速定位或检索自己想要的信息。

商家的角度 :通过推荐系统做个性化服务,提高用户信任度和粘度,增加营收。亚马逊每年百分之三十五的销售额来源于推荐。

推荐算法-协同过滤算法

通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。

协同过滤推荐算法分为两类:

  • 基于用户的协同过滤算法
  • 基于客户的协同过滤算法

算法优点:

  • 基于用户行为,不需要先验知识。
  • 只需要用户和商品关联矩阵,结构简单。
  • 在用户行为丰富的情况下,效果好。

算法缺点:

  • 需要大量的显性/隐性用户行为(显性是打分,隐性是点击、停留等)
  • 需要通过完全相同的商品关联
  • 假定用户的兴趣完全取决于之前的行为。

五、 推荐系统实例开发

1、 创建一个scala project

scala

2、 项目配置,先将需要的依赖包拷贝到项目文件夹下面,并解压。然后找到如图所示的地方,把刚刚拷贝进去的依赖包加载进项目。

scala

scala

3、 在项目中添加具体应用文件,右键src,加入scala class

scala

4、 编写代码

该项目的代码我已经上传我的github,就不在博客重复贴了,链接如下:

https://github.com/kokozeng/blog/tree/master/recommend

project/out 里有生成好的jar包,可以直接调用

project/src 有scala代码

/data 是本次实验用到的数据

5、 配置打包文件,然后进行build。

scala

6、 将生成的jar包以及需要的数据用xftp传输到hadoop集群上

scala

7、 通过xshell登录服务器,首先先配置环境变量,然后用hdfs dfs –put 和hdfs dfs –ls命令上传数据和检查是否上传了数据。

scala

scala

8、 进入spark目录运行如下命令:

bin/spark-submit --class org.myorg.Recommand --master yarn-client /home/gcs21760205/recommend/project.jar /user/gcs21760205/data/u.data /user/gcs21760205/data/u.item

scala

9、 运行结果展示

scala

scala

PS:在实验过程中我一直recommend和recommand傻傻分不清,见谅见谅。如果大家需要源码解读和推荐系统算法解读可留言,我会补充。