1 背景介绍
1.1 行业背景
在2014年以后,大数据领域内掀起了一股强劲的Apache Spark学习和应用的浪潮。
Apache Spark以内存计算为核心,以其通用,快速和完整的生态圈等特点,正在逐步取代速度较慢的hadoop,越来越多的应用在了企业中。
ADHOC SQL查询,流计算,数据挖掘 ,图计算,R语言,一个又一个功能强大的组件使得越来越多的spark爱好者和企业界意识到 ,只要掌握一门spark技术,就能够为大多数的企业遇到的大数据的应用场景提供明显的加速。
学习Spark,成为一名合格的Spark工程师,使得每个致力于大数据行业的人,不仅能得到技术上的提升,也为个人的薪资带来了巨大的提升空间。
1.2 应用背景
随着互联网和大数据技术的发展,以“猜你喜欢”等为代表的推荐系统的应用场景逐渐普及到各个大型的网站中。从购物到旅游,从餐饮外卖到新闻资讯,几乎随处可见推荐系统的身影。
在这个项目中,我们将一起走进推荐系统的世界,看一看如何自己动手开发一套电影推荐系
统。
1.3 项目和技术背景
本项目是一个基于Apache Spark的电影推荐系统。
系统为用户推荐出最合适的5部电影。
整个系统运用了Spark,Hadoop,Hive,Kafka等常用的大数据组件,分为离线推荐
和实时推荐
2个主要的技术路线。
2 项目架构
- 存储层
HDFS作为底层存储,Hive做为数据仓库 - 离线数据处理
SparkSQL - 实时数据处理
kafka, SparkStreaming - 数据应用层
MLlib - 数据展示和对接
ZEPPELIN
系统架构
![](https://img.haomeiwen.com/i4685968/6532c8f2ced5d4b1.png)
3 主要模块
在我们的项目中,主要有以下的模块
存储模块:搭建和配置HDFS分布式文件存储系统,并且把Hbase和MYSQL做为备用的存储数据库 ETL模块:加载原始数据,清洗,加工,为模型训练模块和推荐模块准备所需要的各种数据。 模型训练模块:负责产生模型,以及寻找最佳的模型 推荐模块:包含离线推荐和实时推荐,离线推荐负责把推荐结果存储到存储模块中。实时推荐则负责产 生实时消息队列,并且消费实时消息产生推荐结果,最后存储到存储模块中。 数据展示模块:负责展示项目中所用的数据
![](https://img.haomeiwen.com/i4685968/e560173cc5b446a5.png)
4 系统开发重难点
在我们的项目中,主要有以下的开发的重难点
1.数据仓库的准备 2.数据的处理 3.实时数据流
5 补充内容
![](https://img.haomeiwen.com/i4685968/befdffcf99a3c2a7.png)
![](https://img.haomeiwen.com/i4685968/6bbc209249848601.png)
![](https://img.haomeiwen.com/i4685968/17436b0f24dedb82.png)
![](https://img.haomeiwen.com/i4685968/2b7e499188f9ad49.png)
网友评论