ElasticSearch中的多个节点

时间:2012-11-20 16:10:54

标签: elasticsearch

如何在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

4 个答案:

答案 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