約 10 ~ 20 台のコンピューターを使用するバッチ分散コンピューティング システムを作成する予定です。システムの特定の部分でのデータ フローは約 50 GB であり、他の部分ではかなり小さく 1 GB です。
Hadoop の使用を考えています。スケーラビリティは重要ではありませんが、Hadoop フレームワークが提供するフォールト トレランスと投機的な実行機能が非常に気に入っています。MPIやGearmanなどのフレームワークはそのようなメカニズムを提供していないようで、自分で実装する必要があります。
ただし、より多くのデータ量とおそらくより多くのコンピューターに最適化されているように見えるため、いくつかの疑問があります. たとえば、本 Hadoop the Definitive Guide では、次のように明示的に言及されています。
ハイ パフォーマンス コンピューティング (HPC) およびグリッド コンピューティング コミュニティは、Message Passing Interface (MPI) などの API を使用して、何年にもわたって大規模なデータ処理を行ってきました。大まかに言うと、HPC のアプローチは、SAN によってホストされる共有ファイル システムにアクセスするマシンのクラスター全体に作業を分散することです。これは主に計算集約型のジョブではうまく機能しますが、ネットワーク帯域幅がボトルネックになり、計算ノードがアイドル状態になるため、ノードがより大きなデータ ボリューム (数百ギガバイト、MapReduce が実際に輝き始めるポイント) にアクセスする必要がある場合に問題になります。 .
私の質問は次のとおりです。
- 比較的少量のデータやコンピューターで Hadoop を使用すると、かなりのオーバーヘッドが発生しますか?
- Hadoop に近い方法でフォールト トレランス処理を提供する別のフレームワークはありますか?