我正在尝试部署一个 3 VMs with SolR 4.2 (on a Tomcat 7 instance) using SolrCloud, with an external ZooKeeper (3.4.5) in each instance (I'm using Windows Server 2008 R2) 的集群但是出了点问题,即使Zookeeper实例这样做,我也不会相互通信 . ( I have a multi-core SolR configuration )
这里有我部署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添加了以下行( I also tried to remove the first and second lines from 2 of 3 instances but nothing changes ):
<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" in 'cores' tag 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台机器上的所有防火墙/代理(它们在同一个局域网上并且彼此正确通信) .
1 回答
我找到了解决方案(即使它不完全是我需要的配置,至少它可以工作)变量bootstrap_conf应该作为Java系统参数传递: