2015-01-26 23 views
0

我正在使用solr 4.10.2。我試圖在我的solr雲測試羣集上執行碎片分割。如果索引類型設置爲「本地」或「簡單」,它會一直失敗。當索引類型爲本地或簡單時,Solr雲碎片拆分失敗

這是正常的嗎?如果索引類型設置爲「single」或「none」,我可以執行分片分割。 他們通告碎片分裂,同時Solr的運行來完成,我很難想象閒逛改變生產服務器的鎖類型...

下面是測試環境:

1碎片,2個節點,1集。 最初收集是空的。我添加了幾個文件,證實它們已被複制。一切正常。

發行分割碎片命令:

server1的:端口/ Solr的/管理/集動作= SPLITSHARD &集合= MyCollection的&碎片= shard1 &異步= myhandle

驗證操作過完之後?通過調用

server1的:端口/ Solr的/管理/集動作= REQUESTSTATUS &的requestId = myhandle

狀態爲「完成」。

這裏是日誌:

OverseerCollectionProcessor.processMessage : splitshard , { 
    "operation":"splitshard", 
    "shard":"shard1", 
    "collection":"mycollection", 
    "async":"myhandle"} 


    1/26/2015, 1:49:02 PM 
ERROR 
CoreContainer 
Error creating core [mycollection_shard1_0_replica1]: Error opening new searcher 
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) 
    at org.apache.solr.core.CoreContainer.create(CoreContainer.java:466) 
    at org.apache.solr.handler.admin.CoreAdminHandler.handleCreateAction(CoreAdminHandler.java:575) 
    at org.apache.solr.handler.admin.CoreAdminHandler.handleRequestInternal(CoreAdminHandler.java:199) 
    at org.apache.solr.handler.admin.CoreAdminHandler$ParallelCoreAdminHandlerThread.run(CoreAdminHandler.java:1234) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
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) 
    ... 9 more 
Caused by: org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: [email protected]/nfs/solr/index/write.lock 
    at org.apache.lucene.store.Lock.obtain(Lock.java:89) 
    at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:753) 
    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) 
    ... 11 more 

    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) 
    at org.apache.solr.core.CoreContainer.create(CoreContainer.java:466) 
    at org.apache.solr.handler.admin.CoreAdminHandler.handleCreateAction(CoreAdminHandler.java:575) 
    at org.apache.solr.handler.admin.CoreAdminHandler.handleRequestInternal(CoreAdminHandler.java:199) 
    at org.apache.solr.handler.admin.CoreAdminHandler$ParallelCoreAdminHandlerThread.run(CoreAdminHandler.java:1234) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
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) 
    ... 9 more 
Caused by: org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: [email protected]/nfs/solr/index/write.lock 
    at org.apache.lucene.store.Lock.obtain(Lock.java:89) 
    at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:753) 
    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) 
    ... 11 more 

    1/26/2015, 1:49:26 PM 
ERROR 
SolrIndexWriter 
SolrIndexWriter was not closed prior to finalize(),​ indicates a bug -- POSSIBLE RESOURCE LEAK!!! 
1/26/2015, 1:49:26 PM 
ERROR 
SolrIndexWriter 
Error closing IndexWriter 
java.lang.NullPointerException 
    at org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:3230) 
    at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:3203) 
    at org.apache.lucene.index.IndexWriter.shutdown(IndexWriter.java:907) 
    at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:984) 
    at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:954) 
    at org.apache.solr.update.SolrIndexWriter.close(SolrIndexWriter.java:129) 
    at org.apache.solr.update.SolrIndexWriter.finalize(SolrIndexWriter.java:182) 
    at java.lang.System$2.invokeFinalize(System.java:1213) 
    at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:98) 
    at java.lang.ref.Finalizer.access$100(Finalizer.java:34) 
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:210) 

回答

0

我解決了這一問題。這裏是:

當我創建solr雲環境時,我使用-Dsolr.data.dir屬性將集合存儲映射到不同的文件系統。這是因爲我運行的存儲容量有限。 一旦我刪除此屬性一切開始工作。 我認爲solr會嘗試使用相同的solr.data.dir路徑來創建由碎片拆分導致鎖定問題的新內核。