pangrank演算法--PageRank演算法並行實現

lotus_ruan發表於2021-09-09

圖片描述

前言

Google透過PageRank演算法模型,實現了對全網際網路網頁的打分。但對於海量資料的處理,在單機下是不可能實現,所以如何將PageRank平行計算,將是本文的重點。

本文將繼續上一篇文章 ,把PageRank單機實現,改成並行實現,利用MapReduce計算框架,在叢集中跑起來。

目錄

  1. PageRank演算法並行化原理

  2. MapReduce分步式程式設計

圖片描述

PageRank的分步式演算法原理,簡單來講,就是透過矩陣計算實現並行化。

1). 把鄰接矩陣的列,按資料行儲存

鄰接矩陣

[,1]   [,2]   [,3]   [,4][1,] 0.0375000 0.0375 0.0375 0.0375[2,] 0.3208333 0.0375 0.0375 0.8875[3,] 0.3208333 0.4625 0.0375 0.0375[4,] 0.3208333 0.4625 0.8875 0.0375

按行儲存HDFS

1       0.037499994,0.32083333,0.32083333,0.320833332       0.037499994,0.037499994,0.4625,0.46253       0.037499994,0.037499994,0.037499994,0.887500054       0.037499994,0.88750005,0.037499994,0.037499994

2). 迭代:求矩陣特徵值

圖片描述

map過程:

  • input: 鄰接矩陣, pr值

  • output: key為pr的行號,value為鄰接矩陣和pr值的乘法求和公式

reduce過程:

  • input: key為pr的行號,value為鄰接矩陣和pr值的乘法求和公式

  • output: key為pr的行號, value為計算的結果,即pr值

第1次迭代

0.0375000 0.0375 0.0375 0.0375     1     0.1500000.3208333 0.0375 0.0375 0.8875  *  1  =  1.2833330.3208333 0.4625 0.0375 0.0375     1     0.8583330.3208333 0.4625 0.8875 0.0375     1     1.708333

第2次迭代

0.0375000 0.0375 0.0375 0.0375     0.150000      0.1500000.3208333 0.0375 0.0375 0.8875  *  1.283333  =   1.64458330.3208333 0.4625 0.0375 0.0375     0.858333      0.73791670.3208333 0.4625 0.8875 0.0375     1.708333      1.4675000

… 10次迭代

特徵值

0.15000001.49557210.82550341.5289245

3). 標準化PR值

0.150000                                              0.03750001.4955721  / (0.15+1.4955721+0.8255034+1.5289245) =   0.37389300.8255034                                             0.20637591.5289245                                             0.3822311

圖片描述


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1762/viewspace-2810611/,如需轉載,請註明出處,否則將追究法律責任。

相關文章