1,商城:是单商家,多买家的商城系统。数据库是mysql,语言java。
2,sqoop1.9.33:在mysql和hadoop中交换数据。
3,hadoop2.2.0:这里用于练习的是伪分布模式。
4,完成内容:喜欢该商品的人还喜欢,相同购物喜好的好友推荐。
步骤:
1,通过sqoop从mysql中将 “用户收藏商品” (这里用的是用户收藏商品信息表作为推荐系统业务上的依据,业务依据可以很复杂。这里主要介绍推荐系统的基本原理,所以推荐依据很简单)的表数据导入到hdfs中。
2,用MapReduce实现推荐算法。
3,通过sqoop将推荐系统的结果写回mysql。
4,java商城通过推荐系统的数据实现<喜欢该商品的人还喜欢,相同购物喜好的好友推荐。>两个功能。
实现:
1,推荐系统的数据来源:

左边是用户,右边是商品。用户每收藏一个商品都会生成一条这样的信息,<喜欢该商品的人还喜欢,相同购物喜好的好友推荐。>的数据来源都是这张表。
sqoop导入数据,这里用的sqoop1.9.33。sqoop1.9.33的资料很少,会出现一些错误,搜索不到的可以发到我的邮箱keepmovingzx@163.com。
创建链接信息

这个比较简单
创建job

信息填对就可以了
导入数据执行 start job --jid 上面创建成功后返回的ID
导入成功后的数据



2,eclipse开发MapReduce程序
ShopxxProductRecommend<喜欢该商品的人还喜欢>
整个项目分两部,一,以用户对商品进行分组,二,求出商品的同现矩阵。
一,第1大步的数据为输入参数对商品进行分组
输出参数:

二,以第一步的输出数据为输入求商品的同现矩阵
输出数据

第一列数据为当前商品,第二列为与它相似的商品,第三列为相似率(越高越相似)。
整个过程就完了,下面
