如下文章字数大约400字以及若干代码块,阅读时间需要20分钟左右。

这里所介绍的示例源自于一道面试题,

因直接粘贴逻辑影响格式,这里直接截图,如果有需要源码的人,可私信我。

关于hadoop的面试题(QQ共同好友数据分析)(1)

对于共同好友的分析,常见于我们各个社交软件中,比如QQ等。

这里分析基于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,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

求出:哪些人两两之间有共同好友以及他俩的共同好友都有谁?

整体解决思路是:

1、先求出用户是哪些人的共同好友,比如:a是b、c 等用户都具备

2、然后再得到哪些人有一些共同的好友。

所以,这里需要执行2次mapreduce程序,第一次执行目的是上述第一步。然后,第二步基于第一步内容。

【1】执行第一次mapreduce程序

关于hadoop的面试题(QQ共同好友数据分析)(2)

关于hadoop的面试题(QQ共同好友数据分析)(3)

上述mapreduce执行完后,得到输出的文件如下:

关于hadoop的面试题(QQ共同好友数据分析)(4)

【2】基于第一次执行完的文件,执行第二次mapreduce逻辑:

关于hadoop的面试题(QQ共同好友数据分析)(5)

关于hadoop的面试题(QQ共同好友数据分析)(6)

关于hadoop的面试题(QQ共同好友数据分析)(7)

得到最终的结果文件为:

关于hadoop的面试题(QQ共同好友数据分析)(8)

至此,得到结果。

下篇预告:Hadoop中重要的HDFS中元数据备份机制。

已上内容,纯属一家之言,因本人能力一般,见识有限,如有问题,请不吝指正,感谢。

相关技术内容会持续更新,大家可随时交流,欢迎关注本头条号

,