分散して処理したい非常に大きな分割不可能なバイナリファイルが多数ある場合に、分散したいシステムがあります。これらは数百Gbのオーダーです。さまざまな固定された実装固有の理由により、これらのファイルは並行して処理することはできませんが、同じプロセスで最後まで順番に処理する必要があります。
このアプリケーションはC++で開発されているため、データを送受信するためのHadoopパイプを検討します。各インスタンスは、100Gbから200Gbのオーダーで、独自のデータ(現在は1つのファイルに保存されています)を順番に処理する必要があります。アプリケーションは現在(おそらく)IOに制限されているため、各ジョブを完全にローカルで実行することが重要です。
私はこのデータをホストするためにHDFSに非常に熱心です-冗長コピーを自動的に維持し、新しいノードが追加されたときにリバランスする機能は非常に便利です。また、計算が簡単で、データのできるだけ近くで計算をホストする必要があるため、mapreduceにも熱心です。ただし、この特定のアプリケーションにHadoopがどれほど適しているのか疑問に思っています。
データを表現するために、分割できないファイルを生成したり、代わりに巨大なシーケンスファイルを生成したりできることを知っています(私の場合、これらは単一のファイルに対して10Tbのオーダーになります-すべてのデータをにパックする必要があります1)。したがって、Hadoopを使用してデータを処理することが可能です。ただし、私のモデルはHadoopにあまり適合していないようです。コミュニティは同意しますか?または、このデータを最適にレイアウトするための提案がありますか?または、モデルにより適している可能性のある他のクラスターコンピューティングシステムの場合でも?
この質問は、Hadoopに関する既存の質問と重複している可能性がありますが、私のシステムでは、個々のファイルごとに1桁または2桁以上のデータが必要です(以前は、サイズが数Gbの個々のファイルについて尋ねられた質問を見ました) 。したがって、このサイズのデータであっても、これが以前に回答されている場合はご容赦ください。
ありがとう、
アレックス