0

膨大な量のデータを処理する必要があり、分散コンピューティング (スケーラブル) を使用して処理したいと考えています。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 を見たことがありますが、商用アプリケーションのようです。

4

3 に答える 3

0

探している拡張性の規模はわかりませんが、最初にマルチコアボックスでマルチスレッドソリューションを試してみます。

パフォーマンスが期待と一致せず、アプリケーションのハードウェアとインスタンスを増やす柔軟性がある場合は、Map-Reduceソリューションを考え始めることができます。

TerracotaはSpring/SpringSource / VMWareのものではありませんが、独自仕様で商用です。

于 2012-04-23T18:36:31.280 に答える
0

NoSQL データベースの使用を検討したことがありますか? どちらを使用するかは、データの形状によって異なります。それらをチェックアウトするには(すべてオープンソース):

NoSQL データベースの詳細。

編集: Couchbase と Cloudera (Hadoop ソリューションおよびサポート会社) によるこのウェビナー
をたまたま 見つけました。そこでは、NoSQL + Hadoop の使用法について話し合う予定です。

于 2012-04-24T07:32:07.307 に答える
0

このタスクは、Hadoop の MapReduce に適したサウンドです。さらに、Lucene と Hadoop は同じ Doug Cutting によって作成されました。あなたの場合、さまざまなレベルの統合を検討できます。最も簡単な方法は、データセットを HDFS に配置し、データ形式に適した入力形式を選択/書き込み、Mapper で REST 呼び出しを行ってレコードを完成させます。
さまざまな比較的単純な処理がある場合は、データを Hive テーブルとして、または HDFS から、または SOLR で表現することを検討することをお勧めします。
私はSOLRアーキテクチャに精通していませんが、Apache NutchをSOLRと一緒に使用している場合は、hadoopが統合されている可能性があり、それを使用できます。

于 2012-04-24T07:39:55.107 に答える