2015-10-19 2 views
0

В прошлый уикенд я попытался выполнить полный передел Solr для нашего кластера Cassandra. Казалось, что два узла занимают гораздо больше времени, чем другие три, на самом деле они продолжают индексирование в течение нескольких часов после того, как остальные были сделаны. Наконец, казалось, что они закончили, по крайней мере, в веб-консоли они сказали «нет» для поля индексирования в веб-консоли.Solr full reindex, похоже, потерпел неудачу на двух узлах

К сожалению, примерно через час один из этих узлов стал полностью не реагирующим и в конечном итоге должен был быть перезапущен.

Сегодня я смотрю на узлы, и у 3, у которых, похоже, нет никаких проблем, все утверждают, что у них около 14,8 млн. Документов или около того, что и должно быть. Однако те, которые были застряли или ушли навсегда (в том числе и те, которые были безуспешными), имеют только 9 и 7 миллионов соответственно. Это огромное несоответствие, которое говорит мне, что они не закончили правильно.

Таким образом, чтобы решить эту проблему у меня есть два вопроса:

1) Поскольку это были полные переиндексации, являются изменения, которые были реализованы в схему и, следовательно, основание для полного индекса, хорошего? Другими словами, это только часть индексации, которая не закончилась, так что я могу просто запустить регулярный reindex, чтобы вернуть все так, как должно быть?

2) Предполагая, что мне не нужно запускать полный реиндекс, могу ли я просто запустить реиндекс на двух узлах, которые не в порядке? С точки зрения времени это было бы идеально, как мне пришлось бы делать это послезавтра в любом случае, и он, надеюсь, закончит ночь.

Просто интересно, как действовать, поскольку в прошлом у меня не было этой проблемы.

+0

Я должен добавить, я просто просмотрел системные журналы и проверил, что переиндексирование успешно завершилось на трех узлах, которые оказались правильными, и я также подтвердил, что он не завершился на 2, которые появляются из-под удара. –

ответ

0

Что касается ваших вопросов:

1) Да, вы можете сделать перезагрузку с на месте REINDEX, установив REINDEX = истинный, DeleteAll = ложный.

2) Да, вы можете запустить реиндекс на месте с отказавшими узлами только путем вызова перезагрузки на каждом узле и установки reindex = true, deleteAll = false, distribution = false.

Посмотри: http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/srch/srchReldCore.html

Во всяком случае, это было бы хорошо, чтобы сначала понять, почему эти узлы не удались: что такое поведение выглядит как отказ от ошибки памяти, но есть какое-либо исключение в журналах?

Смежные вопросы