2011-08-30 98 views
3

我有solr的主 - 从配置。主索引将更新24X7.its一个连续的过程。每30分钟后,我的slave会从主服务器索引索引。Solr索引拉取失败

问题是这样的指数拉是因为以下异常

SnapPull失败的失败:org.apache.solr.common.SolrException:指数取 失败:在 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]在 java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) [:1.6.0_26]在 java.util中.concurrent.ScheduledThreadPoolExecutor $ $ ScheduledFutureTask.access 101(ScheduledThreadPoolExecutor.java:98) [:1.6.0_26]在 java.util.concurrent.ScheduledThreadPoolExecutor中$ ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) [:1.6.0_26]在 java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(Sche duledThreadPoolExecutor.java:204) [:1.6.0_26]在 java.util.concurrent.ThreadPoolExecutor中$ Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26]在 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 获取超时: [email protected]/data/solr/data/index/lucene-47510fa3e31f1e71e7408a128e1ebac1-write.lock at org.apache.lucene.store.Lock.obtain(Lock.java:85)[:2.9 .3 951790 - 2010-06-06 01:30:55] at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1565)org.apache.lucene.index.IndexWriter。(IndexWriter.java:1421) [:2.9.3 951790 - 2010-06- 06 1时30分55秒在] org.apache.solr.update.SolrIndexWriter(SolrIndexWriter.java:191) [:1.4.1 955763M - 标记 - 2010-06-17 18时06分42秒]在 有机.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 - 马克 - 2010-06-17 18点06分42秒] ... 11多个

是因为连续指数更新用的这个异常在主人或任何其他原因this.how我可以摆脱这一点。

在此先感谢。

问候 拉姆

回答

1

我认为jpountz的解释是正确的。我能够通过关闭solr web服务器(Jetty在我的情况下)并删除整个solr索引目录来解决问题,然后重新启动。单独删除锁定文件不能解决问题。

1

有与你的奴隶锁(/data/solr/data/index/lucene-47510fa3e31f1e71e7408a128e1ebac1-write.lock)的问题。例如,如果Solr在IndexWriter打开时崩溃,则会发生这种情况:在以下重新启动之后,锁定文件尚未被清除,所以Solr认为另一个IndexWriter正在更新索引并拒绝执行任何更改。

为了得到这个错误的RIF,您可以:

  • 关Solr的下降,
  • 确保有你的目录中没有活动锁定(解除锁定文件,如果需要的话),
  • 重 - 开始Solr。
+0

嘿谢谢jpountz.SO在主服务器上连续索引写入不会对从服务器上的索引复制造成任何问题。 – Ram

+0

做了同样的事情,但仍然得到相同的异常 – Ram

0

我也遇到过同样的问题。我决心在,

1.Stop Solr的和依赖应用

2.rm -rf/{路径到您的Solr数据目录} /index.*

3.rm/{路径到您的Solr数据目录} /replication.properties

4.启动Solr的(等待10-20分钟复制根据您的索引数据)

检查Solr的云的状态,还跟踪的Solr的日志文件。