私はGiraphで実験しています。 Giraphでアルゴリズムを実行するには、グラフデータを頂点入力形式にする必要があります。利用可能なビッグデータのほとんどすべてはエッジリスト形式です。このEdge List形式をVertexInputFormatに変換するコードをJavaで作成しました。これは、ほぼ800kのエッジを持つ小さなグラフでも機能します。しかし、私が必要とするグラフでは、プログラムを実行するたびにヒープスペースがを超えました。ヒープサイズを最大に増やしてみました。それでもエラーは持続しました。エッジ入力形式から頂点入力形式へのグラフデータの変換
私が実行しているファイルのサイズは約15GBです。
アルゴリズム(PageRank、SingleSourceShortestPathなど..)がGiraphでどのように記述されているのかよくわかりませんが、それらはすべてVertexInputFormatのグラフを入力として受け取ります。
私が探していますヘルプには、次のとおりです。
- VertexInputFormat(または)
- にEdgeInputFormatを変換するために最適化されたコードの任意のオンラインこの変換に助けることができるツール(または)
- のPageRankアルゴリズムEdgeInputFormatを入力として受け取ります。
公式ページからGiraphをダウンロードしました。既にコンパイルされており、利用可能なスナップショットがあります。私はそれがデフォルトで実装されているすべてのアルゴリズムのスナップショットだと理解しました。それらも '$ GIRAPH_HOME/giraph-examples /../ org/apache/giraph/examples'フォルダにあります。このフォルダのすべてのアルゴリズムは、VertexInputFormatで入力を受け取ります。 EdgeInputFormat APIについて説明しました。あなたはそれについてより多くの洞察を提供できますか? ありがとうございます。 –
giraph-core /.../ org/apache/giraph/io/formatsフォルダで利用可能なすべての入力フォーマットを確認できます。プログラムを実行しているときは-eifと指定します(eifはエッジ入力を表します) )と-vifおよび-vipの代わりに(エッジ入力パス)を書き出します。また、独自の入力形式を実装することもできます。 –
saleem