目录
一 绪论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
Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算,同时它也是当前最流行的云计算平台。本次毕业设计通过Hadoop云计算平台实现一个商品推荐系统,希望通过编写本次毕业设计,能够对Hadoop有一个基本的了解。
随着科技与信息技术的迅猛发展,社会进入了一个全新的高度信息化的时代,互联网无处不在,影响了人类生活的方方面面,并彻底改变了人们的生活方式。在面对庞大且复杂的互联网信息时往往感到无从下手,使得在互联网中找寻有用信息的成本巨大,产生了所谓的“信息过载”问题。搜索引擎和推荐系统的产生为解决“信息过载”问题提供了非常重要的技术手段。推荐系统不需要用户提供明确的需求,而是通过分析用户的历史行为来对用户的兴趣进行建模,从而主动给用户推荐可能满足他们兴趣和需求的信息。
近年来,在电商领域中各种各样的网购平台发展迅速,网上购物已成为许多人选购商品的基本途径。同时随着C2C经营模式的普及,越来越多的人纷纷在网上开店,网购平台上每时每刻都有新商家入驻,商品上下架,伴随着海量的商品信息更新。如何实时准确地收集并更新大量数据,怎样让消费者在网购平台快速找到自己心目中的商品,这些问题使网购平台所使用的商品搜索引擎面临着巨大挑战。
面对海量购物数据,单机运行处理的模式不论从效率或处理能力上来讲,都已经满足不了如今数据挖掘的需求以及不便于用户购物。为了方便用户在购物过程中购物,通过其购买信息与购买物品对其推荐相关物品。
选取Apache和Hadoop作为本应用系统的分布式计算平台。Hadoop主要由两大核心模块组成:分布式文件系统 HDFS 和分布式批处理框架MapReduce两部分组成。HDFS 为我们提供了包括大规模文件存储系统以及对应可靠的备份管理机制的高容错性、高吞吐量的海量数据存储解决方案,而MapReduce编程模型为开发人员提供便利的分布式应用开发接口,如通信、同步、调度计算、负载均衡、处理机器异常等分布式计算和分布式系统常常遇到的复杂难题则交由Hadoop平台解决,对于上层开发人员来说是透明的。Hadoop是一个可靠、高效、可扩展的开源分布式软件框架解决方案和工业级应用,主要用于大规模数据的存储和离线业务计算处理,目前被很多大型网站和公司支持和采用,并取得很好的应用效果。数据库采用MySQL5.7服务器。