2013-10-04 24 views
2

我試圖在每個實例中使用外部ZooKeeper(3.4.5)(使用Windows Server 2008 R2),使用SolrCloud在Solr 4.2(在Tomcat 7實例上)部署一個虛擬機集羣 但是出現了一些問題,我沒有具體的錯誤,但是當我在一個實例上發送文檔時,它們總是在該實例上編入索引,而其他文件不會看到它。 簡而言之,即使Zookeeper實例存在,它們看起來並不相互通信。 (我有一個多核心SolR配置如何在具有Tomcat + 3外部ZooKeeper的3個不同虛擬機上使用SolrCloud部署Solr?

這裏有我做部署SolrCloud(後跟this tutorial)的步驟。


1)我已經安裝動物園管理員和創建的在每種情況下一個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)I在Tomcat中的context.xml中加入對於SOLR以下行(我也試圖從2 3的實例中刪除第一行和第二行,但沒有什麼變化):

<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)I在schema.xml中加入每個實例的每個核心的版本字段,「複製」和solrconfig.xml中「得到」處理程序和updateLog,如solr.xml在http://wiki.apache.org/solr/SolrCloud#Required_Config

4)指定我把HOSTPORT =「8080」在'核心標籤 5),那麼我在每一種情況下推出的ZooKeeper(含斌/ 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:[email protected]] - 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:[email protected]] - 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:Fi[email protected]] - Snapshotting: 0x100000000 to C:\PcSemantic\PCSEMANTIC\So 
lr\zookeeper_data\version-2\snapshot.100000000 

Solr實例不會記錄錯誤或警告。 我停止了3臺機器上的所有防火牆/代理(它們位於同一局域網中,並且它們彼此正確通信)。

回答

0

我找到了解決方案(即使它不完全是,我需要配置至少它的工作原理) 變量bootstrap_conf應作爲Java系統參數進行傳遞:

  • Tomcat作爲一項服務:$ TOMCAT_HOME/bin/tomcat7w.exe,選項卡'JAVA';加入「Java選項」:

    -Dboostrap_conf=true 
    
+0

你不應該在生產ENV使用虛擬機,因爲Solr的是IO intesive和虛擬機是非常糟糕的IO – 2013-10-28 06:56:45

+0

這是一個非生產ENV測試 – magnum87

相關問題