如何在ElasticSearch中拥有多个节点?我在elasticsearch.yml中使用以下内容,但只有最后一个节点启动,浏览器会抱怨: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
答案 0 :(得分:32)
我认为最简单的方法是在命令行中指定这些参数。要启动三个节点,只需在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
参数启动三个节点。
答案 1 :(得分:1)
首先,你应该尝试使用弹性搜索
[http://localhost:9200/][1]
,如果您使用的是默认端口绑定。
我会将您的主节点设置为也是一个数据节点,没有理由不这样做。如果您尝试在一台计算机上启动3个节点。但是,在同一台机器上启动3个节点并不像实验那样有意义。你想要完成什么?
答案 2 :(得分:1)
在windows for 6.x版本中,命令属性更改为
elasticsearch -EsomeYamlPropety=someValue
首先您需要将elasticsearch.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
答案 3 :(得分:0)
要在一台计算机上运行3个Elasticsearch节点,应在每个节点的elasticsearch.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