我很困惑pagerank算法如何使用mapreduce模型。
主要的困惑是,在阶段II之后,val与关键URL(而不是外链)链接,所以它如何在下一次迭代中起作用?
请参阅下面的示例:
txt:
A->B
A->C
B->A
C->B
WORKER1 WORKER2
LOAD
A->B B->A
A->C C->B
MAP
(A,B) (B,A)
(A,C) (C,B)
SHUFFLE AND DISTRIBUTE
(A,[B,C]) (B,[A])
(C,[B])
REDUCE
(A,(PR(A),[B,C],2)) (B,(PR(B),[A],1))
(C,(PR(C),[B],1))
MAP(PHASE2)
(B,(PR(A)/2,2)) (A,(PR(B)/1,1))
(C,(PR(A)/2,2)) (B,(PR(C)/1,1))
SHUFFLED AND DISTRIBUTE
(A,[PR(B)/1]) (B,[PR(A)/2,PR(C)/1])
(C,[PR(A)/2])
RERUCE
(A,(NEWPR(A),[B],2)) (B,(NEWPR(B),[A,C],1))
(C,(NEWPR(C),[A],1))
直到现在,我丢失了外链信息,我的错误在哪里?
答案 0 :(得分:2)
您需要一个结构(node_id,page_rank,adjacency_list)来存储页面链接,PR和邻接列表。
培训MapReduce思想的好书是Data-Intensive Text Processingwith MapReduce。在 5.3 PAGERANK 中,详细介绍了如何在MapReduce中实现PageRank。