首页 文章

如何使用Tomcat 3外部ZooKeeper在3个不同的VM上部署Solr和SolrCloud?

提问于
浏览
2

我正在尝试部署一个 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 回答

  • 0

    我找到了解决方案(即使它不完全是我需要的配置,至少它可以工作)变量bootstrap_conf应该作为Java系统参数传递:

    • Tomcat作为服务:$ TOMCAT_HOME / bin / tomcat7w.exe,tab'JAVA';添加'java选项':
    -Dboostrap_conf=true
    

相关问题