SolrCloud を使用して SolR 4.2 (Tomcat 7 インスタンス上)で 3 つの VM のクラスターをデプロイしようとしています。各インスタンスに外部 ZooKeeper (3.4.5) を使用しています (私は Windows Server 2008 R2 を使用しています) 。 、特定のエラーはありませんが、インスタンスでドキュメントを送信すると、常にそのインスタンスでインデックスが作成され、他のインスタンスには表示されません。つまり、Zookeeper インスタンスが相互に通信していても、相互に通信していないように見えます。(私はマルチコア SolR 構成を持っています)
ここに、SolrCloud をデプロイするために行った手順があります (このチュートリアルが続きます)。
1) ZooKeeper をインストールし、サンプル ファイルのいくつかの行を変更して、各インスタンスにzoo.cfg ファイルを作成しました。
dataDir=C:\\PcSemantic\\PCSEMANTIC\\Solr\\zookeeper_data
clientPort=2181
server.1=vm1:2888:3888
server.2=vm2:2888:3888
server.3=vm3:2888:3888
2) Tomcat for SolR の context.xml に次の行を追加しました ( 3 つのインスタンスのうち 2 つから 1 行目と 2 行目を削除しようとしましたが、何も変わりませんでした)。
<Environment name="numShards" type="java.lang.Integer" value="3" override="true" />
<Environment name="bootstrap_conf" type="java.lang.Boolean" value="true" override="true" />
<Environment name="zkHost" type="java.lang.String" value="vm1:2181,vm2:2181,vm2:2181" override="true" />
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 をすべて起動するまでだけです。その後、次のログが記録されます。
2013-10-04 10:17:33,733 [myid:3] - INFO [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:218
1:Follower@63] - FOLLOWING - LEADER ELECTION TOOK - 94
2013-10-04 10:17:33,780 [myid:3] - INFO [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:218
1:Learner@325] - Getting a snapshot from leader
2013-10-04 10:17:33,780 [myid:3] - INFO [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:218
1:FileTxnSnapLog@240] - Snapshotting: 0x100000000 to C:\PcSemantic\PCSEMANTIC\So
lr\zookeeper_data\version-2\snapshot.100000000
Solr インスタンスは、エラーや警告をログに記録しません。3台のマシンですべてのファイアウォール/プロキシを停止しました(それらは同じLAN上にあり、互いに正しく通信しています)。