Derzeit implementiert PageRank auf Disco. Als iterativer Algorithmus werden die Ergebnisse einer Iteration als Eingabe für die nächste Iteration verwendet.Disco/MapReduce: Verwenden der Ergebnisse der vorherigen Iteration als Eingabe für eine neue Iteration
Ich habe eine große Datei, die alle Links darstellt, wobei jede Zeile eine Seite und die Werte in der Zeile die Seiten darstellt, zu denen sie verknüpft ist.
Für Disco, breche ich diese Datei in N Chunks und dann MapReduce für eine Runde. Als Ergebnis bekomme ich eine Reihe von (Seiten-, Rang-) Tupeln.
Ich möchte diesen Rang in die nächste Iteration einspeisen. Jetzt benötigt mein Mapper jedoch zwei Eingaben: die Graph-Datei und die Seitenzahlen.
- Ich mag würde zu „zip“ zusammen die Grafik-Datei und die Seite Reihen, , so dass jede Zeile eine Seite darstellt, ist es Rang, und es ist aus Links.
- Da dieser Graph-Datei in N Stücke getrennt ist, ich brauche den Pagerank Vektor in N parallel Stücke aufteilen und Reißverschluss über die Regionen der Pagerank Vektoren zum Graphen Brocken
Das alles scheint mehr Komplizierter als nötig, und als ziemlich einfache Operation (mit dem grundlegenden Mapreduce-Algorithmus) scheint mir etwas an Disco zu fehlen, das den Ansatz wirklich vereinfachen könnte.
Irgendwelche Gedanken?