2014-09-23 62 views
2

我們有三個虛擬機:前兩個系統上我們安裝了Tomcat 6,Zookeeper 3.4.6和Solr 4.10兩個虛擬機: 。 在第三個節點上安裝了TOmcat 6和Zookeeper 3.4.6 所以我們有一個兩節點solrcloud集羣和一個三節點zookeeper集羣。SolrCloud副本鎖定相關錯誤

前兩個虛擬機是srvmsolr01和srvmsolr02。

我們可以無誤地創建集合和碎片。我們無法添加副本。

例如下面的命令:

<i>http://srvmsolr01.test.com:8080/solr/admin/collections?action=CREATE&name=mycollection3&numShards=2&replicationFactor=2&maxShardsPerNode=2</i> 

給我們的錯誤:

<i>Caused by: org.apache.solr.common.SolrException: Unable to create core 
[shard2_replica2] 
     at org.apache.solr.core.CoreContainer.create(CoreContainer.java:507) 
     at org.apache.solr.core.CoreContainer.create(CoreContainer.java:466) 
     at org.apache.solr.handler.admin.CoreAdminHandler.handleCreateAction(CoreAdminHandler.java:575) 
     ... 18 more 
Caused by: org.apache.solr.common.SolrException: Error opening new searcher 
     at org.apache.solr.core.SolrCore.<init>(SolrCore.java:873) 
     at org.apache.solr.core.SolrCore.<init>(SolrCore.java:646) 
     at org.apache.solr.core.CoreContainer.create(CoreContainer.java:491) 
     ... 20 more 
Caused by: org.apache.solr.common.SolrException: Error opening new searcher 
     at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1565) 
     at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1677) 
     at org.apache.solr.core.SolrCore.<init>(SolrCore.java:845) 
     ... 22 more 
Caused by: org.apache.lucene.store.LockObtainFailedException: Lock 
obtain timed out: [email protected]/app/zookeeper/data/index/write.lock 
     at org.apache.lucene.store.Lock.obtain(Lock.java:89) 
     at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:755) 
     at org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:77) 
     at org.apache.solr.update.SolrIndexWriter.create(SolrIndexWriter.java:64) 
     at org.apache.solr.update.DefaultSolrCoreState.createMainIndexWriter(DefaultSolrCoreState.java:279) 
     at org.apache.solr.update.DefaultSolrCoreState.getIndexWriter(DefaultSolrCoreState.java:111) 
     at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1528) 
     ... 24 more </i> 

如果我們創建了一個集合有兩個碎片,然後我們嘗試單獨添加每個副本同樣的情況:

<i>http://srvmsolr02.test.com:8080/solr/admin/cores?action=CREATE&name=shard1_replica2&collection=collection1&shard=shard1 
http://srvmsolr01.test.com:8080/solr/admin/cores?action=CREATE&name=shard2_replica1&collection=collection1&shard=shard2</i> 

我們仔細檢查了配置,但是我們無法確定rstand如何實現我們的目標:爲每個碎片

問候 Giova

+0

你有沒有想過這個?我遇到類似的問題,似乎與鎖相關。我嘗試了所有我找到的鎖定答案,但沒有任何幫助。 – LandonC 2015-06-25 16:06:33

+0

我回答了我自己 – Giova 2015-07-16 08:33:42

回答

3

我發現這個問題做了兩個碎片和兩個副本,一個集合2個solrcloud節點。 由於SolrConfig.xml中的datadir參數引發錯誤 使用此參數Solr正在同一目錄中創建所有核心,並且每個核心都有一個鎖定文件,因此在特定時刻只鎖定一個核心。

關注 Giova

+0

是的,這是必需的。我結束了發佈類似的問題(http://stackoverflow.com/questions/31056954/solrcloud-unable-to-create-collection-locking-issues),並得到了相同的答案。謝謝 – LandonC 2015-07-17 16:40:50