从零构建 Spark-机器学习 电影推荐系统(一) - 概述1 背景介绍2 项目架构3 主要模块4 系统开发重难点5 补充内容

2018-12-28 16:00:09 浏览数 (1)

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

系统架构

3 主要模块

在我们的项目中,主要有以下的模块 存储模块:搭建和配置HDFS分布式文件存储系统,并且把Hbase和MYSQL做为备用的存储数据库 ETL模块:加载原始数据,清洗,加工,为模型训练模块和推荐模块准备所需要的各种数据。 模型训练模块:负责产生模型,以及寻找最佳的模型 推荐模块:包含离线推荐和实时推荐,离线推荐负责把推荐结果存储到存储模块中。实时推荐则负责产 生实时消息队列,并且消费实时消息产生推荐结果,最后存储到存储模块中。 数据展示模块:负责展示项目中所用的数据

4 系统开发重难点

在我们的项目中,主要有以下的开发的重难点 1.数据仓库的准备 2.数据的处理 3.实时数据流

5 补充内容

0 人点赞