第四部分-推薦系統-項目介紹
行業背景:
快速: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