私はビッグ データに取り組んでおり、私のプロジェクトはテキスト データを含むグラフで構成されています。頂点間の類似性、ホップ確率、連結成分の数、ページ ランク ベクトル、およびランダム ウォークを 1 つのプロジェクト自体で計算する必要があります。
Hadoop で実装しましたが、もっと時間がかかると思います (グラフには 2500 個のノード、4000 個のエッジ、600 個の接続されたコンポーネントがあり、25 分かかります)。
この質問が投稿されてからしばらく経ちましたが、私の経験からこのスレッドに参加することを考えました。処理時間に関する懸念については、データをどの程度処理しているかによって異なります。上記のすべての計算を 1 つの MR ジョブで実行していますか、それとも同じプログラム内の複数の MR ジョブで実行していますか? はいの場合、時間がかかる可能性があります。また、ページランクを計算するために何回繰り返し実行していますか? クラスタのサイズは?
グラフ処理を行うために Giraph を選択するという Masoud の回答に同意し、さらに追加したいと思います。Map Reduce Programming モデルでグラフ処理が難しい理由はいくつかあります。
グラフは単一のマシンに収まらないため、グラフを分割する必要があります。(たとえば、5 つの異なる大学のノード/ユーザーがいる場合、同じマシン上に 1 つの大学のすべてのノードがある可能性が高いなど、近隣をまとめるための範囲分割)
データのレプリケーションを実行する必要がある場合があります。
パーティション間の通信を減らします。
Apache Twister についての知識がない 2 番目の懸念に戻りますが、Apache Giraph は大規模分散グラフ アルゴリズム用に特別に構築されており、フレームワークが大量の処理ニーズをすべて処理します。これらは基本的に、グラフのトラバース、エッジに沿って他のノードに情報を渡すなどのグラフアルゴリズムの機能によるものです。
最近、ビッグデータ プロジェクトの 1 つに Giraph を使用しましたが、とても勉強になりました。私が返事をするのが遅すぎないなら、あなたはそれを調べるべきです.
詳細な説明については、これらのスライドを参照してください。