させて
| 0 0 0 1 0 |
| 0 0 0 1 0 |
| 0 0 0 1 1 |
| 1 1 1 0 0 |
| 0 0 1 0 0 |
隣接行列 (またはグラフ) になります。M
次に、PageRank の遷移行列は次のようになります。
| 0 0 0 1/3 0 |
| 0 0 0 1/3 0 |
| 0 0 0 1/3 1 |
| 1 1 1/2 0 0 |
| 0 0 1/2 0 0 |
これは列確率的、既約、および非周期的です。
MapReduce はここから始まります。マッパーのシリアル化された入力は次のようになります
1 -> 4
2 -> 4
3 -> 4 , 5
4 -> 1 , 2 , 3
5 -> 3
そしてマッパーは以下を出力します:
< 1 , [4] >
< 4 , 1 >
< 2 , [4] >
< 4 , 1 >
< 3 , [4 , 5] >
< 4 , 1/2 >
< 5 , 1/2 >
< 4 , [1, 2, 3] >
< 1 , 1/3 >
< 2 , 1/3 >
< 3 , 1/3 >
< 5 , [3] >
< 3 , 1 >
マッパーの出力はキーでグループ化され、リデューサーによって取得されます。レデューサーが 5 つある場合は、次のようになります。
R1 takes [4] , 1/3 then computes 1/5*(1/3) = 2/30
R2 takes [4] , 1/3 then computes 1/5*(1/3) = 2/30
R3 takes [4, 5] , 1/3 , 1 then computes 1/5*(1/3 + 1) = 8/30
R4 takes [1, 2, 3] , 1 , 1 , 1/2 then computes 1/5*( 1 + 1 + 1/2) = 15/30
R5 takes [3] , 1/2 then computes 1/5*(1/2) = 3/30
これで、最初の (パワー) 反復が終了しました。次のリデュース ジョブの間、リデューサーはマッパーが行うのと同じように発行しますが、1 の代わりに計算された PR が使用されます。
< 1 , [4] >
< 4 , 2/30 >
< 2 , [4] >
< 4 , 2/30 >
< 3 , [4 , 5] >
< 4 , 4/30 >
< 5 , 4/30 >
< 4 , [1, 2, 3] >
< 1 , 5/30 >
< 2 , 5/30 >
< 3 , 5/30 >
< 5 , [3] >
< 3 , 3/30 >
十分に収束するか満足するまで、reduce ジョブを繰り返します。