Ошибка, связанная с блокировкой реплик SolrCloud

У нас есть три ВМ: на первых двух системах мы установили Tomcat 6, Zookeeper 3.4.6 и Solr 4.10. На третьем узле мы установили TOmcat 6 и Zookeeper 3.4.6. Итак, у нас есть кластер solrcloud с двумя узлами и кластер zookeeper с тремя узлами.

Первые две виртуальные машины — это srvmsolr01 и srvmsolr02.

Мы можем создавать коллекции и осколки без ошибок. Мы не можем добавлять реплики.

Например, следующая команда:

<i>http://srvmsolr01.test.com:8080/solr/admin/collections?action=CREATE&name=mycollection3&numShards=2&replicationFactor=2&maxShardsPerNode=2</i>

дайте нам ошибку:

<i>Caused by: org.apache.solr.common.SolrException: Unable to create core
[shard2_replica2]
        at org.apache.solr.core.CoreContainer.create(CoreContainer.java:507)
        at org.apache.solr.core.CoreContainer.create(CoreContainer.java:466)
        at org.apache.solr.handler.admin.CoreAdminHandler.handleCreateAction(CoreAdminHandler.java:575)
        ... 18 more
Caused by: 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)
        ... 20 more
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)
        ... 22 more
Caused by: org.apache.lucene.store.LockObtainFailedException: Lock
obtain timed out: NativeFSLock@/app/zookeeper/data/index/write.lock
        at org.apache.lucene.store.Lock.obtain(Lock.java:89)
        at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:755)
        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)
        ... 24 more </i>

То же самое произойдет, если мы создадим коллекцию из двух шардов, а затем попробуем добавить каждую реплику по отдельности:

<i>http://srvmsolr02.test.com:8080/solr/admin/cores?action=CREATE&name=shard1_replica2&collection=collection1&shard=shard1
http://srvmsolr01.test.com:8080/solr/admin/cores?action=CREATE&name=shard2_replica1&collection=collection1&shard=shard2</i>

Мы дважды проверили конфигурацию, но не можем понять, как достичь нашей цели: два узла solrcloud с коллекцией из двух шардов и двух реплик, по одной на каждый шард.

С уважением Джова


person Giova    schedule 23.09.2014    source источник
comment
Вы когда-нибудь догадывались об этом? У меня похожая проблема, которая, похоже, связана с блокировкой. Я перепробовал все ответы на блокировку, которые нашел, но ничего не помогло.   -  person LandonC    schedule 25.06.2015


Ответы (1)


Я нашел проблему. Ошибка возникала из-за параметра datadir в SolrConfig.xml. С этим параметром Solr создавал все ядра в одном каталоге, и каждое ядро ​​имело файл блокировки, поэтому в определенный момент было заблокировано только одно ядро.

С уважением Джова

person Giova    schedule 16.07.2015
comment
Ага, это требуется. В итоге я опубликовал аналогичный вопрос (stackoverflow.com/questions/31056954/) и получил тот же ответ. Спасибо - person LandonC; 17.07.2015