MapReduce实现二度好友关系】的更多相关文章

一.问题定义 我在网上找了些,关于二度人脉算法的实现,大部分无非是通过广度搜索算法来查找,犹豫深度已经明确了2以内:这个算法其实很简单,第一步找到你关注的人:第二步找到这些人关注的人,最后找出第二步结果中出现频率最高的一个或多个人(频率这块没完成),即完成. 但如果有千万级别的用户,那在运算时,就肯定会把这些用户的follow 关系放到内存中,计算的时候依次查找:先说明下我没有明确的诊断对比,这样做的效果一定没 基于hadoop实现的好:只是自己,想用hadoop实现下,最近也在学:若有不足的地…
一,背景介绍 在新浪微博.人人网等社交网站上,为了使用户在网络上认识更多的朋友,社交网站往往提供类似“你可能感兴趣的人”.“间接关注推荐”等好友推荐的功能,其中就包含了二度人脉算法. 二,算法实现 原始数据集测试: a b b c a c b d c e e c e f 数据集说明:为关注关系,即a关注b,b关注c和d,所以a的二度人脉应该是d和c,而c已经被a关注,所以应该舍去,自己不能二度人脉是自己,如c关注e,而e又关注c 代码实现,代码用了两个Job实现的 难点:两个job如何先后执行…
1.需求 推荐好友的好友 图1: 2.解决思路 3.代码 3.1MyFoF类代码 说明: 该类定义了所加载的配置,以及执行的map,reduce程序所需要加载运行的类 package com.hadoop.mr.fof; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntW…
1.一度人脉:双方直接是好友 2.二度人脉:双方有一个以上共同的好友,这时朋友网可以计算出你们有几个共同的好友并且呈现数字给你.你们的关系是: 你->朋友->陌生人 3.三度人脉:即你朋友的朋友的朋友就是这个陌生人.你们的关系是 你->朋友->朋友->陌生人 4.四度人脉:比三度增加一度,你们的关系是,你->朋友->朋友->朋友->陌生人 5.五度人脉:你->朋友->朋友->朋友->朋友->陌生人 ,像上面这张图片表示的就…
https://www.jianshu.com/p/8707cd015ba1 问题描述: 以下是qq好友关系,进行好友推荐,比如:老王和二狗是好友 , 二狗和春子以及花朵是好友,那么老王和花朵 或者老王和春子就有可能也认识,可以对老王推荐春子和或花朵作为好友. 注意以下是制表符:tab建,所以程序中用 /t进行分割 老王 二狗 老王 二毛 二狗 春子 二狗 花朵 老王 花朵 花朵 老王 春子 菊花 问题分析 问题分析: 主 ---> 从 从 --->主 分别列出每一个关系,然后都列出从--&g…
关系计算问题描述 二度关系是指用户与用户通过关注者为桥梁发现到的关注者之间的关系.目前微博通过二度关系实现了潜在用户的推荐.用户的一度关系包含了关注.好友两种类型,二度关系则得到关注的关注.关注的好友.好友的关注.好友的好友四种类型. 如果要为全站亿级用户根据二度关系和四种桥梁类型推荐桥梁权重最高 TopN 个用户,大致估算了下总关系量在千亿级别,按照原有的 Mapreduce 模式计算整个二度关系,需要以桥梁用户为 Key,把它的关注和粉丝两个亿级的表做 Join,如果活跃用户按照亿计,平均关…
1.一度人脉:双方直接是好友 2.二度人脉:双方有一个以上共同的好友,这时朋友网可以计算出你们有几个共同的好友并且呈现数字给你.你们的关系是: 你->朋友->陌生人 3.三度人脉:即你朋友的朋友的朋友就是这个陌生人.你们的关系是 你->朋友->朋友->陌生人 4.四度人脉:比三度增加一度,你们的关系是,你->朋友->朋友->朋友->陌生人 5.五度人脉:你->朋友->朋友->朋友->朋友->陌生人 ,像上面这张图片表示的就…
friend表结构 DROP TABLE IF EXISTS FRIEND; create table friend(     uid        bigint not null comment '用户标识',     friend_uid    bigint not null comment '申请加为好友的用户标识',     sys_create_date datetime not null comment '申请时间',     sys_last_update datetime not…
最近做了一个项目,要求找出二度人脉的一些关系,就好似新浪微博的“你可能感兴趣的人” 中,间接关注推荐:简单描述:即你关注的人中有N个人同时都关注了 XXX . 在程序的实现上,其实我们要找的是:若 User1 follow了10个人 {User3,User4,User5,... ,User12}记为集合UF1,那么 UF1中的这些人,他们也有follow的集合,分别是记为: UF3(User3 follow的人),UF4,UF5,...,UF12:而在这些集合肯定会有交集,而由最多集合求交产生的…
先下载github代码,下面的操作,都是基于这个版本来的! https://github.com/987334176/Intelligent_toy/archive/v1.5.zip 注意:由于涉及到版权问题,此附件没有图片和音乐.请参考链接,手动采集一下! 请参考链接: https://www.cnblogs.com/xiao987334176/p/9647993.html#autoid-3-4-0 一.玩具管理页面 点击下面的标签,页面还没有反应. 点击之后,需要进入玩具管理页面! 进入HB…