Как перенести данные Elasticsearch с одного сервера на другой?
У меня есть сервер A, на котором выполняется Elasticsearch 1.1.1 на одном локальном узле с несколькими индексами. Я хотел бы скопировать эти данные на сервер B, на котором запущен Elasticsearch 1.3.4.
Процедура на данный момент
- Выключите ES на обоих серверах и
- scp все данные в правильный каталог данных на новом сервере. (данные, похоже, находятся в / var / lib / elasticsearch / в моих ящиках debian)
- изменить разрешения и владение на elasticsearch: elasticsearch
- запустить новый сервер ES
Когда я смотрю на кластер с плагином ES head, индексы не появляются.
Вроде не загружаются данные. Я что-то упускаю?
elasticsearch
Джабб
источник
источник
Ответы:
Выбранный ответ делает его немного более сложным, чем есть на самом деле, вам нужно следующее (сначала установите npm в вашей системе).
Вы можете пропустить первую команду elasticdump для последующих копий, если сопоставления останутся постоянными.
Я только что без проблем перешел с AWS на Qbox.io с указанным выше.
Более подробная информация по адресу:
https://www.npmjs.com/package/elasticdump
Страница справки (по состоянию на февраль 2016 г.) включена для полноты:
источник
Используйте ElasticDump
1) yum install epel-release
2) yum install nodejs
3) yum install npm
4) npm установить elasticdump
5) cd node_modules / elasticdump / bin
6)
источник
Для этого вы можете использовать функцию моментального снимка / восстановления, доступную в Elasticsearch. После того, как вы настроили хранилище моментальных снимков на основе файловой системы, вы можете перемещать его между кластерами и восстанавливать в другом кластере.
источник
Я пробовал на ubuntu переместить данные из ELK 2.4.3 в ELK 5.1.1
Ниже приведены шаги
в домашнем каталоге перейти
выполнить команду
Если вам нужна базовая http-аутентификация, вы можете использовать ее так:
Скопируйте индекс из производства:
источник
sudo apt-get install -y software-properties-common
перед add-apt-repositoryТакже есть
_reindex
вариантИз документации:
POST _reindex { "source": { "remote": { "host": "https://REMOTE_ELASTICSEARCH_ENDPOINT:PORT", "username": "USER", "password": "PASSWORD" }, "index": "INDEX_NAME", "query": { "match_all": {} } }, "dest": { "index": "INDEX_NAME" } }
источник
Если вы можете добавить второй сервер в кластер, вы можете сделать это:
Это будет работать, только если количество замен равно количеству узлов.
источник
Если кто-то столкнется с той же проблемой, при попытке сбросить из elasticsearch <2.0 в> 2.0 вам необходимо сделать:
источник
Мне всегда удавалось просто копировать каталог / папку index на новый сервер и перезапускать его. Вы найдете идентификатор индекса, выполнив операцию,
GET /_cat/indices
и папка, соответствующая этому идентификатору, находится внутриdata\nodes\0\indices
(обычно внутри вашей папки elasticsearch, если вы ее не переместили).источник
Мы можем использовать
elasticdump
илиmultielasticdump
сделать резервную копию и восстановить ее. Мы можем переместить данные с одного сервера / кластера на другой сервер / кластер.Пожалуйста, найдите подробный ответ, который я дал здесь .
источник
Если вам просто нужно перенести данные с одного сервера elasticsearch на другой, вы также можете использовать elasticsearch-document-transfer .
Шаги:
$ npm install elasticsearch-document-transfer.
config.js
config.js
options.js
$ node index.js
источник
Вы можете сделать снимок полного состояния вашего кластера (включая все индексы данных) и восстановить их (с помощью API восстановления) в новом кластере или сервере.
источник
Если вы не хотите использовать elasticdump как консольный инструмент. Вы можете использовать следующий скрипт node.js
источник