問題タブ [solrcloud]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-zookeeper - solr クラウドにおける飼育係の役割
私は SolrCloud(4.X) を初めて使用します。SolrCloud での飼育係の役割と責任について詳しく説明できる人はいますか? また、Solr への検索/追加要求に関して Zookeper はどのように機能しますか?
tomcat - コレクションの RELOAD 後に SolrCloud ノードがダウンする
Solr 4.4、Zookeeper 3.4.5、および Tomcat 7 を使用しています。
クラスターのセットアップ: 3 つのシャードと 3 つのレプリカ。合計 6 つの Solr インスタンス。
クラスタは稼働中です。すべて問題ないようです。廃止されたクラスに関するいくつかの警告を除いて、ログに重要なものはありません。
構成の更新方法:
次のコマンドを実行します。
java -classpath .:solr-jars/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost ZOOKEEPER_HOST:PORT -d solr-conf -confname myconf
Zookeeper で構成が更新されたことを確認します。
/var/zookeeper/bin/zkCli.sh ZOOKEEPER_HOST:ポート
ls /configs/myconfig/schema.xml
ls /configs/myconfig/solrconfig.xml
Solr コレクション API を介したコレクションのリロード
curl HOST/solr/admin/collections?action=RELOAD&name=collection1
構成の更新がすべてのノードに正常に適用されたようです。ただし、クラスター内の 1 つのノードがダウンする場合があります (Solr 管理 UI で茶色としてマークされます)。Tomcat の再起動、コレクションのリロードは、このノードを元に戻すのに役立ちません。
ログからのエラー メッセージ:
質問:
- 失敗したノードを元に戻す方法はありますか? もちろん、すべてのデータを削除する必要はありません。
- Zookeeper で更新された後、Solr ノードに構成を強制的に受け入れる正しい方法は何ですか? 可能であればTomcatを再起動せずに(本番システムです)
- (任意) 一般的に、SolrCloud の安定性と予測可能性について、あなたは何を満たしていますか? SC と一緒に仕事をしている間、私は他の人々から SC について非常に多くの不満や質問を受けました。良い兆候のようには見えません。
UPDATE 1 エラーメッセージは実際の問題とは関係がないようです。トランザクション ログを構成した後、このエラーは表示されなくなりました。ただし、コレクションのリロード後にダウンするノードはまだほとんどありません。
これを元に戻す唯一の方法は、Zookeeper で clusterstate.json を直接編集し、ノード ステータスを「アクティブ」に変更することです。その後、ノードは問題なく安定しているようです。
solr - インデックス サイズ 400% 以上の増加: 通常の Solr インスタンスと SolrCloud の比較
私はさまざまなインフラストラクチャ アプローチを試していますが、次のことに気づいて驚いています。
Solr4.4 で SQL クエリを介して DataImportHandler を使用して、130 万件のドキュメント (すべてのフィールドがインデックス付けされ、保存され、一部がシングル分析された) のインデックスを作成しました。
アプローチ1 : 単一の Solr インスタンス
インデックス作成時間: ~10 分
「index」フォルダのサイズ:1.6GB
アプローチ 2: 2 つのインデックス スライスを持つ SolrCloud。
インデックス作成時間: ~11 分
「インデックス」フォルダのサイズ: 1.6GB + 1.5GB = 3.1GB
各インデックス スライスには約 0.65M のドキュメントがあり、予想される元の合計数に追加されます。
アプローチ3 : 2 つのシャード (リーダー 1 つ + レプリカ 1 つ) を持つ SolrCloud
インデックス作成時間: ~30 分
「インデックス」フォルダのサイズ: リーダー (4.6GB)、レプリカ (3.8GB) = 8.4GB (これは 1.6GB * 2 であると予想されていましたが、~1.6GB*5.25 です)
SolrCloud のチュートリアルに従っています。
スライス (パーティション) やシャーディング (レプリケーション) に関係なく、すべてのインスタンスに存在する必要がある用語辞書などのメタデータ (間違っている場合は修正してください) があることを認識しています。
ただし、アプローチ 2 と 3では、最終的なインデックス サイズが大幅に増加 ( 400% ) します。
洞察を提供してください。
tomcat - Tomcat + 3 つの外部 ZooKeeper を使用して 3 つの異なる VM に SolrCloud を使用して Solr をデプロイする方法は?
SolrCloud を使用して SolR 4.2 (Tomcat 7 インスタンス上)で 3 つの VM のクラスターをデプロイしようとしています。各インスタンスに外部 ZooKeeper (3.4.5) を使用しています (私は Windows Server 2008 R2 を使用しています) 。 、特定のエラーはありませんが、インスタンスでドキュメントを送信すると、常にそのインスタンスでインデックスが作成され、他のインスタンスには表示されません。つまり、Zookeeper インスタンスが相互に通信していても、相互に通信していないように見えます。(私はマルチコア SolR 構成を持っています)
ここに、SolrCloud をデプロイするために行った手順があります (このチュートリアルが続きます)。
1) ZooKeeper をインストールし、サンプル ファイルのいくつかの行を変更して、各インスタンスにzoo.cfg ファイルを作成しました。
2) Tomcat for SolR の context.xml に次の行を追加しました ( 3 つのインスタンスのうち 2 つから 1 行目と 2 行目を削除しようとしましたが、何も変わりませんでした)。
3) http://wiki.apache.org/solr/SolrCloudで指定されているように、各インスタンスの各コアの schema.xml と solrconfig.xml に、バージョン フィールド、「replication」および「get」ハンドラー、および updateLog を追加しました。 #Required_Config
4) solr.xml で、「cores」タグに hostPort="8080"を入れました 5) 次に、各インスタンスで (bin/zkServer.cmd を使用して) ZooKeeper を起動し、各インスタンスでサービスとして Tomcat を起動しました ZooKeeper インスタンスは正しく通信しているにもかかわらず、いくつかのエラーがログに表示されるのは、3 つの ZK をすべて起動するまでだけです。その後、次のログが記録されます。
Solr インスタンスは、エラーや警告をログに記録しません。3台のマシンですべてのファイアウォール/プロキシを停止しました(それらは同じLAN上にあり、互いに正しく通信しています)。
distribute - SolrCloud 分散検索
分散検索が完了すると、最初のクエリが、クエリ対象の特定のコレクションの一部であるすべてのシャードに転送されます。
ここでの私の質問は、シャードからの結果の集計を行うマシンはどれですか?
最初の要求を受信するマシンは?
solr - Solr の単純なレプリケーションをセットアップしますか?
現在、単一のマシンでSolr 4を使用しています。ただし、別のマシンで Solr Core を使用してレプリケーションをセットアップしたいと考えています。別のマシンに既に Solr がインストールされています。
ただし、Solr で非常に単純なレプリケーションをセットアップするために Zookeeper をどのように進めればよいかわかりません。
開始方法について何か考えはありますか?
java - CloudSolrServer SolrJ 4.4 を使用して IndexReader を取得する
プログラムで FastVectorHiglighter.getBestFragments(...) を使用したい。そのためには、指定されたリクエストに対して IndexReader オブジェクトが必要です。
問題は、リクエスト自体を取得できないことです。SolrQuery オブジェクトが提供するのは queryRespose だけです。
独自の SolrCore オブジェクトを作成しようとしました
上記(getReader())の結果はnullになりますが。いくつかのヒントを使用します: solrCloud で indexReader を取得する方法。
前もって感謝します