您的位置:首页 > 运维架构

MapReduce:共同好友

2016-07-11 15:10 417 查看
社交网站上,在看好友信息时,经常会得到如下一个信息,你和xxx有N位共同好友。

下面是A、B、C、D、E 5个人的好友情况:

A -> B C D

B -> A C D E

C -> A B D E

D -> A B C E

E -> B C D

第一行的意思是A有BCD 3个好友,下面几行的以此类推。

请使用 map reduce 任务,完成共同好友这个功能。

要求:

1. 描述清楚map和reduce函数的的输入,输出

2. (optional)将map 函数、reduce函数的输出逐步演算出来

解答

1.map输入:(偏移量,原始数据)

map输出:([用户1,用户2],用户1和用户2的共同好友)

reduce输入:([用户1,用户2],用户1和用户2的共同好友)

reduce输出:([用户1,用户2],[用户1、用户2的共同好友列表])

2.

map输入:

0 ABCD

4 BACDE

9 CABDE

14 DABCE

19 EBCD

map输出:

BC A

BD A

CD A

AC B

AD B

AE B

CD B

CE B

DE B

AB C

AD C

AE C

BD C

BE C

DE C

AB D

AC D

AE D

BC D

BE D

CE D

BC E

BD E

CD E

reduce输入:

BC A

BD A

CD A

AC B

AD B

AE B

CD B

CE B

DE B

AB C

AD C

AE C

BD C

BE C

DE C

AB D

AC D

AE D

BC D

BE D

CE D

BC E

BD E

CD E

reduce输出:

AB CD

AC BD

AD BC

AE BCD

BC ADE

BD ACE

BE CD

CD ABE

CE BD

DE BC
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop