PageRank手工计算得出的值见帖子
http://f.dataguru.cn/thread-17158-1-1.html 这个值有助于我们验证下面MR计算是不是正确
首先假设有两个节点A和B 原始矩阵如tiger老师的幻灯片第九页 a=1
网页1和2保存在节点A上 网页3和4保存在节点B上
由于A在A上很容易计算1和2的出链 根据MR的本地运算的思想,网页1和2的处理必在A上完成,B也同理
那么我们可以设计Map函数,这个函数的作用有两:1、得到源矩阵 2、用源矩阵乘以列向量
得到在A上需要计算的源矩阵:
0 0
1/3 0
1/3 1/2
1/3 1/2
同理在B节点上要计算的源矩阵:
0 0
0 1
0 0
1 0
基于矩阵的乘法规则 我们假设一个列向量q00={{1},{1}} q10={{1},{1}}
把q0和q1分别发送到节点A和节点B上 然后进行计算 我们姑且把计算出来的向量叫做qa和qb:
在A上:
0*1+0*1 0
1/3*1+0*1 1/3
qa= 1/3*1+1/2*1 = 5/6
1/3*1+1/2*1 5/6
在节点B上:
0*0+0*1 0
0*1+1*1 1
qb=0*1+0*1 = 0
1*1+0*1 1
然后通过网络把qa和qb发送到执行reduce函数执行的节点上 reduce函数的作用也有两个:1、合并计算结果 2、进行排序输出
0
4/3
q1 = qa+qb= 5/6
11/6
发现这个q1正是我们手工计算时的第一轮迭代的结果,下面的步骤就简单了
那就是把这个q1分发到A和B进行计算新的qa和qb 这是q00={{0,4/3}} q10={{5/6,11/6}}
计算后:
0*0+0*4/3 0
1/3*0+0*4/3 0
qa= 1/3*0+1/2*4/3 = 4/6
1/3*0+1/2*4/3 4/6
0*5/6+0*11/6 0
0*5/6 +1*11/6 11/6
qb= 0*5/6 +0* 11/6 = 0
1*5/6 +0* 11/6 5/6
0
11/6
q2=qa+qb= 4/6
9/6
和我们手工计算的q2相同,如果反复进行运算 知道得到一个理想值,这就是用MR实现PageRank的原理了!
分享到:
相关推荐
基于mapreduce的pagerank实现DEMO下载地址。基于java的实现。内附详细说明。 需要更多资源请关注。 github: https://github.com/huangyueranbbc
简单的在MapReduce中实现两个表的join连接简单的在MapReduce中实现两个表的join连接简单的在MapReduce中实现两个表的join连接
用MapReduce实现TF-IDF,Hadoop版本是2.7.7,参考某教程亲自手写的,可以运行,有问题可以留言
PageRank算法的MapReduce实现
Hadoop 用mapreduce实现Wordcount实例,绝对能用
使用Hadoop MapReduce实现两个矩阵相乘算法
用MapReduce实现KMeans算法,数据的读写都是在HDFS上进行的,在伪分布下运行没有问题。文档中有具体说明。
主要为大家详细介绍了基于MapReduce实现决策树算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》内容简介:“Hadoop技术内幕”共两册,分别从源代码的角度对“Common+HDFS”和“MapReduce的架构设计和实现原理”进行了极为详细的分析。《Hadoop技术内幕:...
Hadoop技术内幕 深入理解MapReduce架构设计与实现原理 高清完整中文版PDF下载
Hadoop-MapReduce下的PageRank矩阵分块算法 高清完整中文版PDF下载
《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入分析了RPC框架、客户端、JobTracker、TaskTracker和...
“Hadoop技术内幕”共两册,分别从源代码的角度对“Common+HDFS”和“MapReduce的架构设计和实现原理”进行了极为详细的分析。《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》由Hadoop领域资深的实践者...
为了提高PageRank算法的计算效率,提出了基于块结构划分的方法,将网页之间的链接关系转换成网络块间的关系,减少了map和reduce操作的调用次数,降低了I/O传输造成的开销,提高计算的效率。实验证明,该方法具有一定...
这篇文档详细介绍了pagerank的起源及算法过程,带有各部分的注释,能使小白看懂
Hadoop介绍,HDFS和MapReduce工作原理
基于hadoop2.0,mapreduce实现朴素贝叶斯算法,源码,NaieBayes
云计算MapReduce实现KNN算法,使用环境:在vmware虚拟机上安装unbuntu14系统,系统中安装hadoop。文件中包含有MapReduce以及KNN的java代码、包含训练数据的excel表格以及详细的教程文档,文档中手把手教到如何使用...