Solr Index拉动失败

时间:2011-08-30 12:33:05

标签: lucene solr

我有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上的连续索引更新还是其他任何原因。我可以摆脱这个。

提前致谢。

此致 拉姆

3 个答案:

答案 0 :(得分:1)

您的从属设备上存在锁定(/data/solr/data/index/lucene-47510fa3e31f1e71e7408a128e1ebac1-write.lock)的问题。例如,当IndexRriter打开时Solr崩溃时会发生这种情况:在重新启动后,锁定文件尚未清除,因此Solr认为另一个IndexWriter正在更新索引并拒绝执行任何更改。

要获得此错误的rif,您可以:

  • 关闭Solr,
  • 确保目录中没有活动锁(如有必要,请删除锁定文件),
  • 重新启动Solr。

答案 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的日志文件。