我有solr的主 - 从配置。主索引将被更新24X7.its一个连续的进程。我的奴隶每隔30分钟就从主服务器中提取索引。
问题是由于以下异常,索引拉动失败
SnapPull失败:org.apache.solr.common.SolrException:索引获取 失败了:at org.apache.solr.handler.SnapPuller.fetchLatestIndex(SnapPuller.java:329) [:1.4.1 955763M - mark - 2010-06-17 18:06:42] at org.apache.solr.handler.ReplicationHandler.doFetch(ReplicationHandler.java:264) [:1.4.1 955763M - mark - 2010-06-17 18:06:42] at org.apache.solr.handler.SnapPuller $ 1.run(SnapPuller.java:159)[:1.4.1 955763M - mark - 2010-06-17 18:06:42] at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:441) [:1.6.0_26] at java.util.concurrent.FutureTask中$ Sync.innerRunAndReset(FutureTask.java:317) [:1.6.0_26] at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) [:1.6.0_26] at java.util.concurrent.ScheduledThreadPoolExecutor中的$ ScheduledFutureTask.access $ 101(ScheduledThreadPoolExecutor.java:98) [:1.6.0_26] at java.util.concurrent.ScheduledThreadPoolExecutor中的$ ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) [:1.6.0_26] at java.util.concurrent.ScheduledThreadPoolExecutor中的$ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) [:1.6.0_26] at java.util.concurrent.ThreadPoolExecutor中的$ Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26] at java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26] at java.lang.Thread.run(Thread.java:662)[:1.6.0_26] 引起:org.apache.lucene.store.LockObtainFailedException:Lock 获得超时: SimpleFSLock@/data/solr/data/index/lucene-47510fa3e31f1e71e7408a128e1ebac1-write.lock 在org.apache.lucene.store.Lock.obtain(Lock.java:85)[:2.9.3 951790 - 2010-06-06 01:30:55]在 org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1565) [:2.9.3 951790 - 2010-06-06 01:30:55] at org.apache.lucene.index.IndexWriter。(IndexWriter.java:1421) [:2.9.3 951790 - 2010-06-06 01:30:55] at org.apache.solr.update.SolrIndexWriter。(SolrIndexWriter.java:191) [:1.4.1 955763M - mark - 2010-06-17 18:06:42] at org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:98) [:1.4.1 955763M - mark - 2010-06-17 18:06:42] at org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:173) [:1.4.1 955763M - mark - 2010-06-17 18:06:42] at org.apache.solr.update.DirectUpdateHandler2.forceOpenWriter(DirectUpdateHandler2.java:376) [:1.4.1 955763M - mark - 2010-06-17 18:06:42] at org.apache.solr.handler.SnapPuller.doCommit(SnapPuller.java:471) [:1.4.1 955763M - mark - 2010-06-17 18:06:42] at org.apache.solr.handler.SnapPuller.fetchLatestIndex(SnapPuller.java:319) [:1.4.1 955763M - mark - 2010-06-17 18:06:42] ... 11更多
这个异常是因为master上的连续索引更新还是其他任何原因。我可以摆脱这个。
提前致谢。
此致 拉姆
答案 0 :(得分:1)
您的从属设备上存在锁定(/data/solr/data/index/lucene-47510fa3e31f1e71e7408a128e1ebac1-write.lock)的问题。例如,当IndexRriter打开时Solr崩溃时会发生这种情况:在重新启动后,锁定文件尚未清除,因此Solr认为另一个IndexWriter正在更新索引并拒绝执行任何更改。
要获得此错误的rif,您可以:
答案 1 :(得分:1)
我认为jpountz的解释是正确的。我能够通过关闭solr Web服务器(在我的情况下是Jetty)并删除整个solr索引dir然后重新启动来解决问题。单独删除锁定文件无法解决问题。
答案 2 :(得分:0)
我也经历过同样的问题。我解决了,
1.Stop Solr and depended applications
2.rm -rf / {solr data dir的路径} / index。*
3.rm / {solr data dir的路径} /replication.properties
4.Start Solr(等待10-20分钟根据索引数据进行复制)
检查Solr云的状态,并跟踪solr的日志文件。