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