1

lucence と hadoop を使用して検索モジュールを配布する準備をしていますが、何かで混乱しました。

  1. 私たちが知っているように、hdfsは分散ファイルシステムです。ファイルをhdfsに配置すると、ファイルはいくつかのブロックに分割され、クラスター内の異なるスレーブマシンに保存されますが、luceneを使用してhdfsにインデックスを書き込む場合、各マシンのインデックスを表示するには、どうすればそれを達成できますか?

  2. Hadoop/contrib/index の一部と katta を読みましたが、「シャードはインデックスの一部のように見えます」という考えを理解していません。それは、1 台のコンピューターのローカル ディスクまたは 1 つのディレクショナル ディストリビューションにのみ格納されていました。クラスター?

前もってありがとう

4

1 に答える 1

1

-質問 1 について:

Lucene の「ディレクトリ」インターフェイスを実装して、hadoop と連携させ、送信したファイルを hadoop に処理させることができます。「IndexWriter」と「IndexReader」の独自の実装を提供し、hadoop クライアントを使用してインデックスを読み書きすることもできます。このようにして、作成するインデックスの形式をより細かく制御できるようになります。lucene/hadoop の実装を介して、各マシンのインデックスを「表示」またはアクセスできます。

-質問 2 の場合:

シャードはインデックスのサブセットです。クエリを実行すると、すべてのシャードが同時に処理され、すべてのシャードでのインデックス検索の結果が結合されます。クラスターの各マシンには、インデックスの一部であるシャードがあります。したがって、インデックスの一部はローカル マシンに保存されますが、クラスター全体に分散された単一のファイルとして表示されます。

また、分散検索SolrCloudをチェックアウトすることをお勧めします。 これは、インデックス作成/検索エンジンとして Lucene で実行され、既にクラスター化されたインデックスを使用できます。また、ファイルを送信してインデックスを作成し、インデックスをクエリするための API も提供します。ユースケースには十分かもしれません。

于 2013-12-09T13:40:41.557 に答える