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

本文介绍了如何在Hadoop系统上实现社交网络图的三角形计数任务。通过3个MapReduce job进行处理,包括边的读入、去重、统计查询边和最终三角形计数。实验详细描述了每个job的设计思路和代码片段。
摘要由CSDN通过智能技术生成

图的三角形计数问题是一个基本的图计算问题,是很多复杂网络分析(比如社交网络分析) 的基础。目前图的三角形计数问题已经成为了 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。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值