第四部分-推荐系统-项目介绍

行业背景:

快速:Apache Spark以内存计算为核心

通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算

完整的生态圈

只要掌握Spark,就能够为大多数的企业的大数据应用场景提供明显的加速

“猜你喜欢”为代表的推荐系统,从吃穿住行等

项目背景介绍:

本项目是一个基于Apache Spark 的电影推荐系统,
技术路线:离线推荐+实时推荐

项目架构:

  • 存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema)

  • 离线数据处理:SparkSQL (做数据查询引擎<===> 数据ETL)

  • 实时数据处理:Kafka + Spark Streaming

  • 数据应用层:MLlib 产生一个模型 als算法

  • 数据展示和对接:Zeppelin

    选用考量:

    HDFS不管是在存储的性能,稳定性 吞吐量 都是在主流文件系统中很占有优势的

    如果感觉HDFS存储还是比较慢,可以采用SSD硬盘等方案

      数据处理层组件:
    Hive 在数据量不是很大或对实时性没有那么高要求的时候,可以选用作为计算引擎 消息队列一般还是Kafka,消费者端也可以使用Flink,Storm等...
    同时,SparkStreaming的优势就是: 已经有与各个组件比较好的集成
    这里写一个KafkaProducer作业实时将数据 放到Kafka 中 应用层:MLlib :Spark 对数据挖掘机器学习库的封装 ,ALS是其中一个算法
    http://spark.apache.org/docs/1.6.3/mllib-guide.html
    http://spark.apache.org/docs/latest/ml-guide.html
    TensorFlow 偏向于深度学习 Zeppelin:包含各个图标表展示,而且组件集成性更多。作业调度略差
    HUE 数据展示+作业调度 系统采用standaone模式,更加简单。
    只有SPARK 环境,就使用standalone 脱机运行模式
    Hadoop +Spark 就推荐:Spark On Yarn
    Spark On Docker : 任务封装为一个个的Docker,不依赖于你的物理机环境,每个Docker 的资源可以更好的分配

主要模块:

  • 存储模块:搭建和配置HDFS分布式存储系统,并Hbase和MySQL作为备用方案

  • ETL模块:加载原始数据,清洗,加工,为模型训练模块 和 推荐模块 准备所需的各种数据。

  • 模型训练模块:负责产生模型,以及寻找最佳的模型

  • 推荐模块:包含离线推荐和实时推荐,离线推荐负责把推荐结果存储到存储系统中

    实时推荐负责产生实时的消息队列,并且消费实时消息产生推荐结果,最后存储在存储模块中

  • 数据展示模块:负责展示项目中所用的数据

  • 数据流向:

系统开发的重难点:

数据仓库的准备 :Spark + Hive 数据ETL  ,Zeppelin +Hive 数据展示
数据处理:
实时数据处理 : 1.数据实时性,完整性 、一致性 ,
2.保证应用不会崩溃掉,or 崩掉之后及时启动起来 并 数据一致性处理

拓展:

1.数据仓库怎么理解?两种东西,其一是IBM微软数据产品为代表的,其二是Hadoop+Hive

Apache Hive™数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集。

可以将结构投影到已经存储的数据上。

提供了命令行工具和JDBC驱动程序以将用户连接到Hive。

2.数据源准备:

Data Source:Movielens Open Data

http://files.grouplens.org/datasets/movielens

http://files.grouplens.org/datasets/movielens/ml-latest.zip

[root@hadoop001 ml-latest]# pwd
/root/data/ml/ml-latest
[root@hadoop001 ml-latest]# ll -h
总用量 1.9G
-rw-r--r--. 1 root root 1.3M 10月 17 13:41 links.txt
-rw-r--r--. 1 root root 2.8M 10月 17 16:06 movies.txt
-rw-r--r--. 1 root root 725M 10月 17 16:07 ratings.txt
-rw-r--r--. 1 root root 38M 10月 17 16:08 tags.txt
[root@hadoop001 ml-latest]#

接下来就是开始Coding...

有任何问题,欢迎留言一起交流~~

更多文章:基于Spark的电影推荐系统:https://blog.csdn.net/liuge36/column/info/29285

基于Spark的电影推荐系统(推荐系统~1)的更多相关文章

  1. 基于Spark的电影推荐系统(电影网站)

    第一部分-电影网站: 软件架构: SpringBoot+Mybatis+JSP 项目描述:主要实现电影网站的展现 和 用户的所有动作的地方 技术选型: 技术 名称 官网 Spring Boot 容器 ...

  2. 基于Spark的电影推荐系统(实战简介)

    写在前面 一直不知道这个专栏该如何开始写,思来想去,还是暂时把自己对这个项目的一些想法 和大家分享 的形式来展现.有什么问题,欢迎大家一起留言讨论. 这个项目的源代码是在https://github. ...

  3. 基于Spark的电影推荐系统(推荐系统~2)

    第四部分-推荐系统-数据ETL 本模块完成数据清洗,并将清洗后的数据load到Hive数据表里面去 前置准备: spark +hive vim $SPARK_HOME/conf/hive-site.x ...

  4. 基于Spark的电影推荐系统(推荐系统~4)

    第四部分-推荐系统-模型训练 本模块基于第3节 数据加工得到的训练集和测试集数据 做模型训练,最后得到一系列的模型,进而做 预测. 训练多个模型,取其中最好,即取RMSE(均方根误差)值最小的模型 说 ...

  5. 基于Spark的电影推荐系统(推荐系统~7)

    基于Spark的电影推荐系统(推荐系统~7) 22/100 发布文章 liuge36 第四部分-推荐系统-实时推荐 本模块基于第4节得到的模型,开始为用户做实时推荐,推荐用户最有可能喜爱的5部电影. ...

  6. 基于Spark的电影推荐系统

    数据文件: u.data(userid  itemid  rating  timestamp) u.item(主要使用 movieid movietitle) 数据操作 把u.data导入RDD, t ...

  7. 基于Mahout的电影推荐系统

    基于Mahout的电影推荐系统 1.Mahout 简介 Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域 ...

  8. 基于pytorch的电影推荐系统

    本文介绍一个基于pytorch的电影推荐系统. 代码移植自https://github.com/chengstone/movie_recommender. 原作者用了tf1.0实现了这个基于movie ...

  9. 数据算法 --hadoop/spark数据处理技巧 --(9.基于内容的电影推荐 10. 使用马尔科夫模型的智能邮件营销)

    九.基于内容的电影推荐 在基于内容的推荐系统中,我们得到的关于内容的信息越多,算法就会越复杂(设计的变量更多),不过推荐也会更准确,更合理. 本次基于评分,提供一个3阶段的MR解决方案来实现电影推荐. ...

随机推荐

  1. Web前端基础(1):HTML(一)

    1. HTML概述 1.1 什么是HTML HTML称为超文本标记语言,是一种标识性的语言.它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体.H ...

  2. shell 练习题1

    1.实现每次打开一个xx.sh时,自动添加注释信息 [root@chengyinwu ~]# cat .vimrc set ignorecase set nu set autoindent autoc ...

  3. pycharm2019.2一个奇怪的bugger,执行后输出内容被莫名处理

    2019-08-20 07:45:07 python爬虫是一直来大家都用的多的,我也是常常用到. requests做请求方便的很,但是今天却遇到requests的bug.text内容不可信. pych ...

  4. 关于es6及以上的js编译成es5

    问题:es6及以上版本在IE浏览器上不能执行起来,但Chrome浏览器上轻松运行,解决兼容IE的问题就需要使用babel:这个可以去babel的官网去查看; 关于babel的简单使用,有两种方式: 1 ...

  5. ES6箭头函数-2

    以下来文字来自阮大神所著书籍摘记.为了加深记忆.本人就手动敲了一遍(相关代码本人也执行过,可保证运行通过.) 箭头函数注意事项: 1) 函数体内的this对象就是定义时所在的对象,而不是使用时所在的对 ...

  6. Wireshark分析实战:某达速递登录帐号密码提取

    - 准备工作 首先,备好Wireshark,打开,在外网网卡上抓包. 其次,用浏览器访问http://www.yundaex.com/cn/index.php,并在手机上下载安装其APP,找到登录页面 ...

  7. UIAlertView和UIAlertController

    UIAlertView 随着苹果上次iOS 5的发布,对话框视图样式出现在了我们面前,直到现在它都没有发生过很大的变化.下面的代码片段展示了如何初始化和显示一个带有“取消”和“好的”按钮的对话框视图. ...

  8. Android TextView文本处理库推荐

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/115 Android TextView文本处理库推荐 现在 ...

  9. 靠谱的CSS样式

    0. 引言 记录一些用到的CSS样式,只要可以使用CSS3的地方都可以使用. 1. CSS样式 flex布局:引用 阮一峰的网络日志http://www.ruanyifeng.com/blog/201 ...

  10. Firebase-config 在android中的使用

    说明 firebase-config提供远程配置方案,可以通过远程控制app的基本配置方案更换工作.如在特定时间更换不同的App基础配色反感,更换基础显示图标等. firebase-config fi ...