美文网首页
基于Spark的电影推荐系统(推荐系统~1)

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

作者: 留歌_36 | 来源:发表于2019-10-21 13:52 被阅读0次

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

    行业背景:

    快速: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)

          本文链接:https://www.haomeiwen.com/subject/cnrtvctx.html