2015-12-17 5 views
0

У нас есть solrcloud (с 11 осколками на 4 машинах, 1 zookeeper). Мы хотим проиндексировать более 100 миллионов документов. Мы вытаскиваем документы из базы данных, готовим xml-файлы и отправляем их в solrcloud.Переключение с нескольких машин на одиночный zookeeper

Поскольку большая часть времени потрачена на подготовку xml-файлов, мы распределяем эту задачу на нескольких машинах. Таким образом, мы готовим XML-файлы на нескольких компьютерах, и все эти машины размещение XML-файлы в том же зоопарк (solrcloud)

Это решение работает быстро для нас, чтобы подготовить XML-файлы, но иногда мы получаем ошибку о том, что

503 Услуга недоступна: {"responseHeader": {"status": 503, "QTime": 412}, "error": {"msg": "Невозможно поговорить с ZooKeeper - Обновления отключены.", "Code": 503

Имея несколько зоопарков, вы решите эту проблему? Есть ли другой способ исправить это?

+0

Проверьте это, если вы еще не [Zookeeper проблем, связанных с SolrCloud] (https://issues.apache.org/jira/browse/SOLR-3274). – YoungHobbit

+0

Есть ли причина, почему у вас есть только один зоопарк? Этот вид поражает всю цель создания ZooKeeper и SolrCloud, поскольку ZooKeeper обрабатывает все махинации при сбое и метаинформацию о узлах. Как вы индексируете? SolrJ - это кластер, знакомый с помощью Zookeeper, позволяющий индексировать его прямо к правильному узлу. – MatsLindh

+0

Нет никакой конкретной причины, почему у нас есть только один зоопарк. Мы не знаем, будет ли иметь несколько зоопарков улучшить наше индексирование и время поиска в нашем случае. Мы также не знаем, сколько зоопарков мы должны иметь. Мы хотим понять, что мы. Мы отправляем XML-документ в узел zookeeper для индексации. –

ответ

0

У меня тоже есть аналогичные проблемы и сталкиваются с этой проблемой при большой объемной нагрузке. Я решил эту проблему, добавив еще два дополнительных узла зооператора, а мой lws-solrcoud имеет 5 узлов с 5 узлами зодиатора.
Я бы предложил, либо вы прекратите процесс приема пищи, либо добавите дополнительные узлы.
Интересная проблема - иногда я получаю «Нет исключений из строя сервера» при загрузке большого объема и черепах сервера автоматически восстанавливаются после некоторого времени. Мы создаем блокировку на стороне клиента, которая контролирует состояние облаков, и все потоки проглатывания блокируются до тех пор, пока не будет освобождена блокировка.

org.apache.solr.common.SolrException: no servers hosting shard: 
+0

Спасибо за это. _ «Мы создаем блокировку на стороне клиента, которая контролирует состояние облаков, и все потоки проглатывания блокируются до тех пор, пока не будет освобождена блокировка». _ Как вы это делаете? –

+0

Процесс проникновения данных разработан в java с использованием solrj. Когда мы получаем solrException, мы запускаем новый поток, который контролирует состояние solrcloud и посылает поток проглатывания, пока поток монитора не сообщит об успешном состоянии сервера. Мониторинг потока выполняется в бесконечном цикле и внутренне использует команду CLUSTERSTATE и команду ping. Если поток монитора работает в течение длительного времени, мы прекращаем процесс приема пищи и уведомляем пользователя. –