我正在尝试使用SolrCloud在SolR 4.2上部署 3个VM集群(在Tomcat 7实例上),每个实例都使用外部ZooKeeper(3.4.5)(我使用的是Windows Server 2008) R2) 但是出了点问题,我没有特定的错误,但是当我在一个实例上发送文档时,它们总是在该实例上编入索引,而其他实例则看不到它。 简而言之,即使Zookeeper实例这样做,它们看起来也不会相互通信。 (我有一个多核SolR配置)
这里有我部署SolrCloud的步骤(后跟this tutorial)。
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的context.xml中为SolR添加了以下行(我还尝试从3个实例中的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)我在每个实例的每个核心的schema.xml和solrconfig.xml中添加了版本字段,'replication'和'get'处理程序以及updateLog,如http://wiki.apache.org/solr/SolrCloud#Required_Config
中所述4)在solr.xml中我把 hostPort =“8080”放在'核心'标签中 5)然后我在每个实例中启动了ZooKeeper(带有bin / zkServer.cmd),然后在每个实例中启动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台机器上的所有防火墙/代理(它们在同一个局域网上,彼此正确通信)。
答案 0 :(得分:0)
我找到了解决方案(即使它不完全是我需要的配置,至少它可以工作) 变量bootstrap_conf应作为Java系统参数传递:
Tomcat作为服务:$ TOMCAT_HOME / bin / tomcat7w.exe,标签'JAVA';添加'java选项':
-Dboostrap_conf=true