基於Spark的電影推薦系統(推薦系統~1)


第四部分-推薦系統-項目介紹

行業背景:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM