寻找共同好友(hadoop解决方案)

博客通过Hadoop处理测试数据,分析用户间的好友关系,提出在map阶段将每两个用户及其好友作为key-value对,然后在reduce阶段比较用户的好友找出共同好友。解决方案详细阐述了map和reduce阶段的操作,并提及在Eclipse中集成Hadoop插件进行测试。
摘要由CSDN通过智能技术生成
测试数据
100,200 300 400 500 600 700 800
200,100 300 400 500 700
300,100 200 400 500 600 700
400,100 200 300 700 800
500,100 200 300 700 800
600,100 300
700,100 200 300 400 500 800
800,100 400 500 700

注意:测试数据中,逗号“,”前为一个用户的标识,逗号“,”后为该用户的好友。而且,用户与好友之间是互为好友的,例如:100的用户中有好友200,则200的用户中一定有好友100

分析

要找到共同好友,需要把每两个用户的好友都进行比较。map阶段就是把每两个用户的好友都找出来;reducer阶段就是找出每两个用户的共同好友。

map阶段:把每一行的数据中,用户和他的一个好友作为key,以他的所有好友作为value,例如用户100,他的map输出为:

100,200 200 300 400 500 600 700 800
100,300 200 300 400 500 600 700 800
100,400 200 300 400 500 600 700 800
100,500 200 300 400 500 600 700 800
100,600 200 300 400 500 600 700 800
100,700 200 300 400 500 600 700 800
100,800 200 300 400 500 600 700 800

最终,map的输出为:(key值的两个用户标识按从小到大的顺序排列)

100,200 200 300 400 500 600 700 800
100,300 200 300 400 500 600 700 800
100,400 200 300 400 500 600 700 800
100,500 200 300 400 500 600 700 800
100,600 200 300 400 500 600 700 800
100,700 200 300 400 500 600 700 800
100,800 200 300 400 500 600 700 800

100,200 100 300 400 500 700
200,300 100 300 400 500 700
200,400 100 300 400<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值