現在、Disco に PageRank を実装しています。反復アルゴリズムとして、1 つの反復の結果が次の反復への入力として使用されます。
すべてのリンクを表す大きなファイルがあり、各行はページを表し、行の値はリンク先のページを表します。
Disco の場合、このファイルを N 個のチャンクに分割し、MapReduce を 1 ラウンド実行します。その結果、(ページ、ランク) タプルのセットを取得します。
このランクを次の反復にフィードしたいと思います。ただし、現在、私のマッパーは、グラフ ファイルとページランクの 2 つの入力を必要としています。
- 各行がページを表し、ランクであり、リンクを表すように、グラフ ファイルとページ ランクをまとめて "zip" したいと思います。
- このグラフ ファイルは N 個のチャンクに分割されているため、ページランク ベクトルを N 個の並列チャンクに分割し、ページランク ベクトルの領域をグラフ チャンクに圧縮する必要があります。
これはすべて必要以上に複雑に思えます。(典型的な mapreduce アルゴリズムを使用した) 非常に単純な操作として、アプローチを本当に単純化できる Disco に関する何かが欠けているようです。
何かご意見は?