基于hadoop的社交网络三角形计数

图的三角形计数问题是一个基本的图计算问题,是很多复杂网络分析(比如社交网络分析) 的基础。目前图的三角形计数问题已经成为了 Spark 系统中 GraphX 图计算库所提供的一个算法级 API。本次实验任务就是要在 Hadoop 系统上实现 Twitter 社交网络图的三角形计数任务。



1.1   MapReduce 的设计思路

整过过程分为3个job,各job对应的键值对类型如下表所示:

 

inputKey

inputValue

outputKey

outputValue

Map1

Object

Text

Text

Text

Reduce1

Text

Text

Text

Text

Map2

LongWritable

Text

Text

Text

Reduce2

Text

Text

Text

Text

Map3

LongWritable

Text

Text

Text

Reduce3

Text

Text

Text

Text

Map1负责读入边,将按行存储的点对读入后,分割成a和b两个点,去除起点和终点相同的边,将标号较小的点放在前面,即a < b,输出键值对a + b –> +,表示存在一条a到b的边。因为对于第二个数据集标号值较大,所以需要以字符串形式存储。

Reduce1负责去重,不改变键值对,但是对于多条相同的键值对只保留一条。

Map2负责以+为分隔符,将key拆成两个点,输出键值对变为a->b。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部