膨大な量のデータを処理する必要があり、分散コンピューティング (スケーラブル) を使用して処理したいと考えています。Apache Solr からデータを取得しています。特定の入力を渡すと、Apache solr から巨大なデータセットが取得されます。このデータセットの各レコードについて、主キーを REST API に渡して、レコードに添付される情報を取得します。その後、各レコードは何らかの更新を受けます。最終的な巨大なコレクション内の更新された各オブジェクトは、個別の xml ファイルとしてフォルダーに書き込まれます。
Hadoop はこの特定のシナリオに適用できますか?.hadoop mapreduce のドキュメントでワードカウントのサンプルを見てきました.同様の方法で自分の状況を考えようとしました。
Node1 - Map<InputIdToSolr1,Set<RecordsFromSolr1to500>>
Node2 - Map<InputIdToSolr1,Set<RecordsFromSolr500to1000>>
次に、この結果は hadoop の reduce 関数によって結合されます。wordcount とは異なり、ノードはノードごとに map に 1 つの要素しか持ちません。hadoop を使用する意味があるかどうかはわかりません。レコードの処理をスケーリングするために使用できる他のオプション/オープン ソース Java プロジェクトは何ですか。Spring の Terracotta を見たことがありますが、商用アプリケーションのようです。