前言

在很多社交APP中,比如大家熟悉的QQ好友列表中,打开会话框,经常可以看到下面有一栏共同好友的推荐列表,用户通过这种方式,可以添加潜在的关联好友

这种功能该如何实现呢?对redis比较了解的同学应该能很快想到,可以使用redis来实现这个功能。没错,redis确实是个不错的可以实现这个功能的方案。

但redis的实现有一定的局限性,因为redis存储和数据和计算时需要耗费较多的内存资源,设想一下,像腾讯QQ这样的规模,如果用这种方式做的话,估计Redis服务器的投入成本将是一笔不小的开销。

利用hadoop中的MapReduce同样可以实现这个功能,该如何实现呢?

业务分析

下面是原始的数据文件,第一栏可理解为本人,第二行为该用户的好友列表,以逗号分割,比如A用户的好友包括:B,C,D,F,E,O这几个,后面的行依次类推

A:B,C,D,F,E,O
B:A,C,E,K
C:F,A,D,I
D:A,E,F,L
E:B,C,D,M,L
F:A,B,C,D,E,O,M
G:A,C,D,E,F
H:A,C,D,E,O
I:A,O
J:B,O
K:A,C,D
L:D,E,F
M:E,F,G
O:A,H,I,J
</

hadoop实现求共同好友相关推荐

  1. 【大数据day14】——MapReduce的运行机制详解(案列:Reduce 端实现 JOIN, Map端实现 JOIN,求共同好友)

    文章目录 1 .MapReduce的运行机制详解 1.1:MapTask 工作机制 详细步骤 配置 1.2 :ReduceTask 工作机制 详细步骤 1.3:Shuffle 过程 2. 案例: Re ...

  2. spark求共同好友

    使用spark求共同好友: 在做一些项目时,又时可能遇到一些类似与求共同好友的要求,可以根据共同好友进行推荐添加好友,就比如说A和B的好友有M,K,O,L,那么有可能A和B就是也认识,所以可以把B推荐 ...

  3. 求共同好友和好友推荐系统

    一.求共同好友 1.1 需求及分析 以下是qq的好友列表数据,冒号前是一个用户,冒号后是该用户的所有好友(数据中的好友关系是单向的) A:B,C,D,F,E,O B:A,C,E,K C:A,B,D,E ...

  4. 使用hive求共同好友

    一个mapreduce的经典题目--求共同好友,目前网上还没有人用hive实现,我来用hive算一下. 一.数据准备 create table friends(people string,friend ...

  5. hadoop 求共同好友

    以下是qq的好友列表数据,冒号前是一个用户,冒号后是该用户的所有好友(数据中的好友关系是单向的) A:B,C,D,F,E,O B:A,C,E,K C:F,A,D,I D:A,E,F,L E:B,C,D ...

  6. hadoop求共同好友案例

    4.1 需求分析 以下是qq的好友列表数据,冒号前是一个用户,冒号后是该用户的所有好友(数据中的好友关系是单向的) A:B,C,D,F,E,O B:A,C,E,K C:A,B,D,E,I D:A,E, ...

  7. hadoop3求共同好友

    需求:求哪些人两两之间有共同的好友,及共同好友都有哪些人. 好友源数据 ------------------------------------ A:B,C,D,F,E,O B:A,C,E,K C:F ...

  8. 需求案例:求共同好友

    以下是qq的好友列表数据,冒号前是一个用户,冒号后是该用户的所有好友(数据中的好友 关系是单向的) A:B,C,D,F,E,O B:A,C,E,K C:A,B,D,E,I D:A,E,F,L E:B, ...

  9. Hadoop入门之共同好友实现Demo

    以下是qq的好友列表数据,冒号前是一个用,冒号后是该用户的所有好友(数据中的好友关系是单向的) A:B,C,D,F,E,O B:A,C,E,K C:F,A,D,I D:A,E,F,L E:B,C,D, ...

最新文章

  1. oracle基本命令集锦
  2. python语言怎么输入-Python input()函数:获取用户输入的字符串
  3. 深度学习100例 | 第28天:水果的识别与分类(准确率99.9%)
  4. 【Laravel】连接sqlite,Database [] not configured,sqlite example
  5. c++和java哪个难_前端和Java开发哪个难?哪个学习容易一点?
  6. 游戏使用html签名,关于玩游戏的个性签名
  7. 第06讲:多路加速,了解多进程基本原理
  8. ubuntu服务器ssh登录密码修改,Ubuntu-18.04 下修改root用户密码,安装SSH服务,允许root用户远程登录,安装vsftp服务器...
  9. 这才是真正的用户增长
  10. 【微软的VDI】Windows Server 2012 RDS存储相关
  11. 出海业务网络加速方案技术能力详解
  12. pcap文件linux怎么打开,pcap文件用什么打开
  13. 如何编写系统设计说明书
  14. 移动物联网卡哪里可以办理
  15. 1688API大全、商品详情调用展示
  16. Cache架构以及X86ARM @Linux平台cache eviction功能测试
  17. 使用 STM32 测量频率和占空比的几种方法
  18. vue2或者vue3图片上传功能(upload)
  19. 在线人数的统计方法。
  20. AM的常用T-CODE

热门文章

  1. 郭盛华公司211万收购AI域名, 只为抢占人工智能市场
  2. JPA implementations comparison: Hibernate, Toplink Essentials, Openjpa, Eclipselink
  3. ISME | 热液微生物群落揭示了喷口区的生物地理学和嗜热性的进化历史
  4. 【转】干货分享-100个shell脚本
  5. CentOS时间、日期、计算器命令
  6. python总结报告模板_Python中RE模块总结
  7. java自定义异常并处理异常
  8. [yueqian_scut]蓝牙防丢器原理、实现与Android BLE接口编程
  9. 苹果 AirTag 防丢器震撼发布,让你的物品精确定位,防止丢失
  10. 使用PowerShell管理Office 365资源邮箱