Как заставить лидера на SolrCloud? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть 5-узловый SolrCloud (Solr 7.0) с внешним 3-узловым ансамблем Zookeeper. Существует одна коллекция под названием «production», которая разделена на 5 фрагментов с коэффициентом репликации 5. См. Скриншот ниже:

enter image description here

shard5 долго пытался выбрать нового лидера, а другие ядра жаловались на следующую ошибку:

azsolr1 solr: 2018-08-28 19: 32: 43.575 ОШИБКА (qtp1124317168-9304) [c: production s: shard2 r: core_node9 x: production_shard2_replica_n4] oashRequestHandlerBase org.apache.solr.common: зарегистрировано. Лидер был найден после ожидания 4000мс, коллекция: производственный срез: shard5

После перезапуска всех узлов один за другим (я даже перезапустил узлы zookeeper), мне не повезло в выборе единственной активной реплики (azsolr1) в качестве лидера. Затем я выгрузил 4 реплики с состоянием «down» с помощью команды CoreAdmin API UNLOAD , которая привела к полному исчезновению реплик.

При такой установке попытка заставить лидера осколка с помощью Collection API FORCELEADER ничего не делает. Я также попробовал это перед разгрузкой ядер.

Вот текущий статус:

enter image description here

Почему Solr не может просто выбрать единственную активную копию для шарда 5 в качестве лидера? Разве это не очевидно, особенно после того, как вы наведете лидера на осколок?

Предполагая, что лидер был каким-то образом избран успешно, воссоздаю ли я реплики, которые я удалил, с помощью Collection API ADDREPLICA ? В этом случае я должен повторно использовать те же самые instanceDir и dataDir удаленных реплик? Или я просто позволю копировать с нуля?

1 Ответ

0 голосов
/ 29 августа 2018

Перезапуск azsolr1, на котором размещалась единственная реплика для shard5, вызвал избрание лидера. Звучит безумно, но это все. После этого я добавил 4 другие реплики с помощью команды ADDREPLICA.

enter image description here

...