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

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

行業背景:

快速:Apache Spark之內存計算爲核心 通用 :一站式解決各個問題,ADHOC SQL查詢,流計算,數據挖掘,圖計算 完整的生態圈 只要掌握Spark,就可以爲大多數的企業的大數據應用場景提供明顯的加速html

「猜你喜歡」爲表明的推薦系統,從吃穿住行等

項目背景介紹:

本項目是一個基於Apache Spark 的電影推薦系統,
技術路線:離線推薦+實時推薦

項目架構:

在這裏插入圖片描述

  • 存儲層:HDFS做爲底層存儲,Hive做爲數據倉庫 (Hive Metastore:Hive管理數據的schema)算法

  • 離線數據處理:SparkSQL (作數據查詢引擎<===> 數據ETL)apache

  • 實時數據處理:Kafka + Spark Streaming架構

  • 數據應用層:MLlib 產生一個模型 als算法機器學習

  • 數據展現和對接:Zeppelin分佈式

    選用考量: HDFS無論是在存儲的性能,穩定性 吞吐量 都是在主流文件系統中很佔有優點的 若是感受HDFS存儲仍是比較慢,能夠採用SSD硬盤等方案ide

    數據處理層組件:
      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模塊:加載原始數據,清洗,加工,爲模型訓練模塊 和 推薦模塊 準備所需的各類數據。oop

  • 模型訓練模塊:負責產生模型,以及尋找最佳的模型性能

  • 推薦模塊:包含離線推薦和實時推薦,離線推薦負責把推薦結果存儲到存儲系統中 實時推薦負責產生實時的消息隊列,而且消費實時消息產生推薦結果,最後存儲在存儲模塊中

  • 數據展現模塊:負責展現項目中所用的數據

  • 數據流向: 在這裏插入圖片描述

系統開發的重難點:

數據倉庫的準備 :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

相關文章
相關標籤/搜索