20

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

4 回答 4

36

我认为最简单的方法是在命令行上指定这些参数。要启动三个节点,您只需在 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参数启动三个节点。

于 2012-11-20T17:32:35.790 回答
2

[http://localhost:9200/][1]首先,如果您使用的是默认端口绑定,您应该尝试使用 访问 elasticsearch 。

我会将您的主节点设置为数据节点,没有理由不这样做。如果您尝试在一台机器上启动 3 个节点。但是,在同一台机器上启动 3 个节点除了实验之外没有任何意义。你想达到什么目的?

于 2012-11-20T18:31:56.140 回答
2

在 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
于 2018-02-13T13:23:01.833 回答
1

要在一台机器上运行 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
于 2019-07-22T08:37:17.530 回答