Несколько узлов в ElasticSearch
Как я могу иметь несколько узлов в моем ElasticSearch? Я использую следующее в elasticsearch.yml, но запускается только последний node, и браузер жалуется: The page at file://localhost/ says: undefined
.
node.name: "No Data"
node.master: true
node.data: false
node.name: "Data One"
node.master: false
node.data: true
node.name: "Data Two"
node.master: false
node.data: true
Ответы
Ответ 1
Я думаю, что самый простой способ сделать это - указать эти параметры в командной строке. Чтобы запустить три узла, вам просто нужно запустить следующие три команды в домашнем каталоге elasticsearch:
$ bin/elasticsearch -Des.node.data=false -Des.node.master=true -Des.node.name=NoData
$ bin/elasticsearch -Des.node.data=true -Des.node.master=false -Des.node.name=DataOne
$ bin/elasticsearch -Des.node.data=true -Des.node.master=false -Des.node.name=DataTwo
Другим решением является создание 3 разных конфигурационных файлов и запуск трех узлов с параметром -Des.config=path-to-config-file
.
Ответ 2
Прежде всего, вы должны попытаться получить доступ к elasticsearch, используя
[http://localhost:9200/][1]
, если вы используете привязки портов по умолчанию.
Я бы установил ваш мастер node также как данные node, нет причин не делать этого. Если вы пытаетесь запустить 3 узла на одной машине. Но, начиная с 3 узлов, все на одной машине не имеют никакого смысла, как ничего, кроме эксперимента. Что вы пытаетесь выполнить?
Ответ 3
В Windows для версии 6.x атрибуты команды изменяются на
elasticsearch -EsomeYamlPropety=someValue
Для начала вам нужно изменить свойстваasticsearch.yml на:
http.port: 9200-9299
transport.tcp.port: 9300-9399
node.max_local_storage_nodes: 2
Потому что вы не можете запускать узлы на одном порту, и когда я пытаюсь использовать команду с аргументом -Ehttp.port = 9201, узлы не могли видеть друг друга и создавали два разных кластера с одинаковым именем.
Запустите первый узел стандартной командой:
.\bin\elasticsearch
Запустите второй узел командой с атрибутами:
.\bin\elasticsearch -Enode.name=NodeTwo -Enode.master=false
Ответ 4
для запуска 3 узловasticsearch на одной машине, вы должны использовать эти конфиги в файлеasticsearch.yml каждого узла:
для мастер-узла:
cluster.name: mycluster
node.name: "node1"
node.master: true
node.data: true
network.host: 127.0.0.1
http.port: 9200-9299
transport.tcp.port: 9300-9399
discovery.zen.minimum_master_nodes: 2
для узлов данных:
cluster.name: mycluster
node.name: "data-node-name"
node.master: false
node.data: true
network.host: 127.0.0.1
http.port: 9200-9299
transport.tcp.port: 9300-9399
discovery.zen.minimum_master_nodes: 2
а затем вы должны запустить каждый узел:
cd path/to/elasticsearch/bin
path\bin>elasticsearch.bat