Solr云索引挂起

Solr云索引挂起,solr,lucene,solrcloud,Solr,Lucene,Solrcloud,我现在正在使用solrcloud,但我面临一个可能导致索引过程挂起的问题 我的部署只是一个集合,其中5个碎片在5台计算机上运行。每天我们都会使用dataimporthandler做一个完整的索引,它有5000万个文档。我们使用solrcloud的分布式索引在5台机器中的一台上触发索引 我发现,有时5台机器中的一台会因故障而死亡 2013-01-08 10:43:35,879 ERROR core.SolrCore - java.io.FileNotFoundException: /home/ad

我现在正在使用solrcloud,但我面临一个可能导致索引过程挂起的问题

我的部署只是一个集合,其中5个碎片在5台计算机上运行。每天我们都会使用dataimporthandler做一个完整的索引,它有5000万个文档。我们使用solrcloud的分布式索引在5台机器中的一台上触发索引

我发现,有时5台机器中的一台会因故障而死亡

2013-01-08 10:43:35,879 ERROR core.SolrCore - java.io.FileNotFoundException: /home/admin/index/core_p_shard2/index/_31xu.fnm (No such file or directory)
        at java.io.RandomAccessFile.open(Native Method)
        at java.io.RandomAccessFile.<init>(RandomAccessFile.java:216)
        at org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:222)
        at org.apache.lucene.store.NRTCachingDirectory.openInput(NRTCachingDirectory.java:232)
        at org.apache.lucene.codecs.lucene40.Lucene40FieldInfosReader.read(Lucene40FieldInfosReader.java:52)
        at org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:101)
        at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:57)
        at org.apache.lucene.index.ReadersAndLiveDocs.getReader(ReadersAndLiveDocs.java:120)
        at org.apache.lucene.index.BufferedDeletesStream.applyDeletes(BufferedDeletesStream.java:267)
        at org.apache.lucene.index.IndexWriter.applyAllDeletes(IndexWriter.java:3010)
        at org.apache.lucene.index.DocumentsWriter.applyAllDeletes(DocumentsWriter.java:180)
        at org.apache.lucene.index.DocumentsWriter.postUpdate(DocumentsWriter.java:310)
        at org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:386)
        at org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1445)
        at org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:210)
        at org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61)
        at org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
        at org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:448)
        at org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:325)
        at org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:230)
        at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:157)
        at org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)
        at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1699)
2013-01-08 10:43:35879错误core.SolrCore-java.io.FileNotFoundException:/home/admin/index/core\u p\u shard2/index/_31xu.fnm(没有这样的文件或目录)
位于java.io.RandomAccessFile.open(本机方法)
位于java.io.RandomAccessFile。(RandomAccessFile.java:216)
位于org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:222)
位于org.apache.lucene.store.NRTCachingDirectory.openInput(NRTCachingDirectory.java:232)
位于org.apache.lucene.codecs.lucene40.Lucene40FieldInfosReader.read(Lucene40FieldInfosReader.java:52)
位于org.apache.lucene.index.SegmentCoreReaders。(SegmentCoreReaders.java:101)
位于org.apache.lucene.index.SegmentReader(SegmentReader.java:57)
位于org.apache.lucene.index.ReadersAndLiveDocs.getReader(ReadersAndLiveDocs.java:120)
位于org.apache.lucene.index.buffereddeleteststream.applyDeletes(buffereddeleteststream.java:267)
位于org.apache.lucene.index.IndexWriter.applyAllDeletes(IndexWriter.java:3010)
位于org.apache.lucene.index.DocumentsWriter.applyAllDeletes(DocumentsWriter.java:180)
位于org.apache.lucene.index.DocumentsWriter.postUpdate(DocumentsWriter.java:310)
位于org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:386)
位于org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1445)
在org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:210)
位于org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61)
位于org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
位于org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:448)
在org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd上(DistributedUpdateProcessor.java:325)
位于org.apache.solr.handler.loader.xmloader.processUpdate(xmloader.java:230)
位于org.apache.solr.handler.loader.xmloader.load(xmloader.java:157)
位于org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)
位于org.apache.solr.handler.ContentStreamHandlerBase.HandlerRequestBody(ContentStreamHandlerBase.java:74)
位于org.apache.solr.handler.RequestHandlerBase.HandlerRequest(RequestHandlerBase.java:129)
位于org.apache.solr.core.SolrCore.execute(SolrCore.java:1699)
我有check index dir,它实际上不包含31xu.fnm。我想知道分布式索引中是否存在一些并发错误

据我所知,分布式索引是这样的工作。您可以将文档发送到任何shard,文档将根据哈希id forword来更正shard。dataimporthandler将使用updatehandler将文档转发到correc shard。最后,文档将通过DocumentsWriterPerThread刷新到磁盘。我想知道是因为从碎片触发的索引发送的更新请求太多导致了这个问题。我的猜测是基于我在死的机器上发现有很多索引段,每个索引段都很小


我对solr不太熟悉,可能是我的猜测毫无意义,有人知道吗?感谢

看起来要么是另一个线程试图使用索引文件时索引文件被合并的竞争条件,要么是由于某种原因,该文件首先无法写入。这是发生这种情况时您看到的唯一例外吗?或者其他人可能会导致这个问题吗?您在solrconfig.xml中定义的提交策略是什么?我已经关闭了自动提交。