目录
一 绪论 1
1.1 编写目的 1
1.2 背景及意义 1
1.3 开发及运行环境 2
二 需求分析 3
2.1 系统概述 3
2.3 系统功能需求 4
2.3.1 收集原始数据 4
2.3.2 计算物品相似度矩阵 4
2.3.3 计算用户购买向量 5
2.3.4 计算推荐向量并去重和排序 5
2.3.4 数据入库 5
2.3.5 作业控制 5
2.3.6商品推荐功能 6
2.4 系统非功能需求 6
三 概要设计 7
3.1系统架构设计 7
3.2系统层次架构设计 8
3.3系统功能模块设计 9
3.3.1 计算物品相似度矩阵 10
3.3.2推荐矩阵(相似度矩阵*向量) 11
3.3.3对推荐向量进行处理 12
3.3.4数据入库 12
3.4系统数据库设计 12
四 详细设计 14
4.1推荐模块程序流程图 14
4.2系统架构图 15
4.3数据预处理层 15
4.4推荐结果生成层 16
4.5推荐系统流程图 17
五 系统实现 17
5.1计算用户购买商品的列表 17
5.2计算商品的共现关系 18
5.3计算用户的购买向量 18
5.4推荐结果 19
5.5数据去重 19
5.6推荐结果入库 20
5.7构建作业流对象 22
六 系统测试 23
6.1计算用户购买商品的列表 23
6.2计算商品的共现次数(共现矩阵) 23
6.3计算用户的购买向量 23
6.4推荐结果 24
6.5数据去重 25
6.6推荐结果入库 25
6.7 web系统推荐商品实现 26
小结 26
参考文献 27
一 绪论
1.1 编写目的
Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算,同时它也是当前最流行的云计算平台。本次毕业设计通过Hadoop云计算平台实现一个商品推荐系统,希望通过编写本次毕业设计,能够对Hadoop有一个基本的了解。
1.2 背景及意义
随着科技与信息技术的迅猛发展,社会进入了一个全新的高度信息化的时代,互联网无处不在,影响了人类生活的方方面面,并彻底改变了人们的生活方式。在面对庞大且复杂的互联网信息时往往感到无从下手,使得在互联网中找寻有用信息的成本巨大,产生了所谓的“信息过载”问题。搜索引擎和推荐系统的产生为解决“信息过载”问题提供了非常重要的技术手段。推荐系统不需要用户提供明确的需求,而是通过分析用户的历史行为来对用户的兴趣进行建模,从而主动给用户推荐可能满足他们兴趣和需求的信息。
近年来,在电商领域中各种各样的网购平台发展迅速,网上购物已成为许多人选购商品的基本途径。同时随着C2C经营模式的普及,越来越多的人纷纷在网上开店,网购平台上每时每刻都有新商家入驻,商品上下架,伴随着海量的商品信息更新。如何实时准确地收集并更新大量数据,怎样让消费者在网购平台快速找到自己心目中的商品,这些问题使网购平台所使用的商品搜索引擎面临着巨大挑战。
面对海量购物数据,单机运行处理的模式不论从效率或处理能力上来讲,都已经满足不了如今数据挖掘的需求以及不便于用户购物。为了方便用户在购物过程中购物,通过其购买信息与购买物品对其推荐相关物品。
1.3 开发及运行环境
选取Apache和Hadoop作为本应用系统的分布式计算平台。Hadoop主要由两大核心模块组成:分布式文件系统 HDFS 和分布式批处理框架MapReduce两部分组成。HDFS 为我们提供了包括大规模文件存储系统以及对应可靠的备份管理机制的高容错性、高吞吐量的海量数据存储解决方案,而MapReduce编程模型为开发人员提供便利的分布式应用开发接口,如通信、同步、调度计算、负载均衡、处理机器异常等分布式计算和分布式系统常常遇到的复杂难题则交由Hadoop平台解决,对于上层开发人员来说是透明的。Hadoop是一个可靠、高效、可扩展的开源分布式软件框架解决方案和工业级应用,主要用于大规模数据的存储和离线业务计算处理,目前被很多大型网站和公司支持和采用,并取得很好的应用效果。数据库采用MySQL5.7服务器。