Hadoop系列(5):MapReduce实现PageRank

本文详细介绍了PageRank的基本原理,并结合Hadoop的MapReduce框架,阐述了如何利用MapReduce实现PageRank的计算过程。在Map阶段,处理输入文件并初始化节点的PR值,同时发送节点贡献值与链接信息。Reduce阶段则负责聚合节点的PR值,并输出下一迭代所需的格式。
摘要由CSDN通过智能技术生成

1、PageRank 原理

(1) 算法定义:

PageRank 算法

输入:所有节点的初始权重值;节点邻接矩阵;迭代次数n

输出:节点权重值

while i <  n:

    for x in nodelist:

         PR(x) = a + (1-a)*sum(PR(t)/C(t))

    end for

end i

其中a为常数,一般取0.15。t为与指向x的所有节点(t->x), C(t)表示t节点的出度。

(2)算法示例(注:为简单起见,示例中省去了常量a和系数1-a)

PR(n2)=PR(n5)/C(n5)+PR(n1)/C(n1)=0.2/3+0.2/0.1=0.166 

在计算节点n3时,仍使用PR(n2)=0.2。在图中所有节点更新一遍后,节点的PR值才会更新。

2、MapReduce 实现 PageRank

思路简介:

1、预处理输入文件

由于PageRank为迭代算法,map的输入与reduce的输出格式需要一致。第一次迭代结果需要传递给第二次迭代,所以在Reduce输出时需要保留第一轮迭代后的各用户的PR值。因此,需要对input文件进行预处理,为各节点初始化PR值为1。

2、Map

在计算过程中,不仅需要向reduce端传送当前节点对其link的其他节点的贡献值,还需要传递link的情况。“link:”开始的value值保存的是节点间的关系,“pr:”开始的value值保存的是节点的贡献值。在数据集中,有些节点的出度0,仅需要记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值