目录
1.项目说明
1.1项目数据
xiaoming laowang renhua linzhiling
laowang xiaoming fengjie
renhua xiaoming ligang fengjie
linzhiling xiaoming ligang fengjie guomeimei
ligang renhua fengjie linzhiling
guomeimei fengjie linzhiling
fengjie renhua laowang linzhiling guomeimei
注:数据用空格分割,每行第一个名字是用户名,同行后面的名字是其对应的好友。
1.2项目需求
给每个人推荐可能认识的人
(1)互为推荐关系值越高,越值得推荐
(2)每个用户,推荐值越高的可能认识的人排在前面
1.3推荐说明
(1)非好友的两个人之间存在相同好友则互为推荐关系
(2)朋友圈两个非好友的人,存在共同好友人数越多,越值得推荐
(3)存在一个共同好友,值为1;存在多个值累加
2.项目实现
2.1流程思想
在Mapper中,若为直接好友,则value为0,不输出;若为间接好友,则value为1,即输出。进一步间接,累加value值。
在Rreduce中,通过sum计算value的总值,进行for循环,sum值越高,即越值得推荐;若循环到value值为0,则舍弃value,认为他是直接好友。
2.2项目代码
框架