2015-10-20 3 views
0

Итак, у меня довольно простое приложение Node.js, работающее на одном сервере, с использованием mongoDB в качестве первичной базы данных и elasticsearch в качестве «набора реплик» только с релевантным поиском поля, индексированные в ES. Мне нужно обновление, потому что более ранняя версия конфликтует с полями, начинающимися с подчеркивания (например, «_id»).Обновление Elasticsearch от 0.90.7 до 1.7.1 в живой системе

Есть ли способ обновить elasticsearch с небольшим количеством простоя без возврата к mongoDB? Также, каков правильный способ резервного копирования elasticsearch в этом сценарии? Какими будут шаги для восстановления резервной копии, если что-то пойдет не так?

TLDR: какой способ резервного копирования и обновления между этими версиями?

+0

Сколько у вас данных и сколько времени потребуется для переиндексации? – Val

+0

Должно быть очень быстро! Пока данных немного. Три коллекции (из которых только два являются индексами ES), которые содержат около 200 и 100 позиций. Я также изучаю другие способы просто избавиться от подчеркивания. Возможно, это вариант. – BenMann

ответ

0

Поскольку объем данных, которые у вас есть в настоящее время, не такой большой, возможно, решение заключается в создании совершенно нового кластера 1.7, индексации ваших данных в нем и затем переворачивании коммутатора, то есть вы делаете свое приложение-узел, на которое вы указываете новый кластер 1.7 вместо старого 0.90.7. Это должно делать свое дело.

Примечание: ES 1.7 идеально требует Java 8, а также supports Java 1.7.0_55 or later, поэтому с 1.7.0_79 вам должно быть хорошо идти на фронт Java.

+0

Это похоже на опрятное решение! Возможно ли запустить новый кластер 1.7 на том же сервере - другой порт или что-то еще? Мне действительно нужно сделать еще некоторое чтение в Elasticsearch для таких случаев: P – BenMann

+0

Да, вы можете определенно запустить два ES-кластера на одном сервере, но вам нужно настроить новый с другим именем кластера, diff TCP/HTTP-порты , папку данных diff и т. д. Попробуйте это и не стесняйтесь возвращаться, если вам нужна помощь в настройке (желательно в новом вопросе, чтобы не смешивать вещи). – Val

+0

Спасибо тонну! Это похоже на достойный путеводитель по установке второго кластера: http://techhari.blogspot.se/2013/03/elasticsearch-cluster-setup-in-2-minutes.html, и я думаю, что изменение портов и т. Д. Может просто делать в elasticsearch.yml. Я дам ему шанс, когда у меня будет шанс (возможно, завтра) и отчитаться здесь или открыть новый Q - при необходимости. – BenMann

2

Я бы определенно не сделал этого вживую. И я сомневаюсь, что это действительно выполнимо, поскольку 0.90 несовместим с 1.0, когда дело доходит до сериализации данных между узлами.

Кроме того, я думаю, вам нужно будет обновить JVM.

О резервном копировании, вы должны:

  • остановки индексирование
  • флеша остальных операции
  • потенциально оптимизирует индекс
  • сделать копию каждого осколка каждого индекса (Rsync, например)

Мои 2 цента.

+0

Это плохая новость .. моя ява версия: "1.7.0_79" OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.14.04.1) OpenJDK 64-разрядный сервер VM (сборка 24.79 -b02, смешанный режим) – BenMann

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