【发布时间】:2021-04-12 07:51:40
【问题描述】:
我正在尝试在单个 vm 中设置三个节点弹性搜索。但是主节点根本没有发现。如果我从 cluster.initial_master_nodes 作为一个节点开始。 选择了 Master,但没有发生集群形成,并且发生了 RemoteTransportException。我太努力了,尝试了多种可能,但没有运气。
这是我的配置。
我尝试了与 Windows 相同的配置,它工作正常。但是linux cent os我遇到了问题。
Os Version: CentOS Linux release 7.9.2009 (Core)
Elastic : 7.11.2 RPM Distribution
Node1
cluster.name: escluster
node.name: master-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["master-1", "master-2","master-3"]
node.max_local_storage_nodes: 3
Node2
cluster.name: escluster
node.name: master-2
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9201
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["master-1", "master-2","master-3"]
node.max_local_storage_nodes: 3
Node3
cluster.name: escluster
node.name: master-3
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9202
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["master-1", "master-2","master-3"]
node.max_local_storage_nodes: 3
三个节点都启动成功。但是集群的形成并没有发生。
[2021-04-10T15:04:22,868][INFO ][o.e.t.TransportService ] [master-1] publish_address {x.x.x.x:9301}, bound_addresses {[::]:9301}
[2021-04-10T15:04:23,246][INFO ][o.e.b.BootstrapChecks ] [master-1] bound or publishing to a non-loopback address, enforcing bootstrap checks
[2021-04-10T15:04:23,435][WARN ][o.e.c.c.ClusterBootstrapService] [master-1] bootstrapping cancelled
java.lang.IllegalStateException: requirement [master-1] matches multiple nodes: [{master-1}{yQiAG1tJS7uwgNiyJ3suWg}{k4haC3AdQXiSrceLevHHaA}
{x.x.x.x}{x.x.x.x:9301}{cdhilmrstw}{ml.machine_memory=8078663680, xpack.installed=true, transform.node=true, ml.max_open_jobs=20, ml.max_jvm_size=536870912},
{master-1}{H4T0B4AdTiWVYHW9Dzi0qw}{tQlVqLzYT3OJXtaug6K3cQ}{x.x.x.x}{x.x.x.x:9300}{cdhilmrstw}{ml.machine_memory=8078663680, ml.max_open_jobs=20, xpack.installed=true,
ml.max_jvm_size=536870912, transform.node=true}]
curl -XGET http://127.0.0.1:9200/_cluster/health?pretty
{
"error" : {
"root_cause" : [
{
"type" : "master_not_discovered_exception",
"reason" : null
}
],
"type" : "master_not_discovered_exception",
"reason" : null
},
"status" : 503
}
[2021-04-10T15:24:20,990][WARN ][o.e.c.c.ClusterFormationFailureHelper] [master-1] master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster,
and this node must discover master-eligible nodes [master-1, master-2, master-3] to bootstrap a cluster: have discovered [{master-1}{RVGdv8o4R7mEZS8G3pF9IQ}
{Ue_VMHc_RFqOjLeW9aJiUw}{x.x.x.x}{x.x.x.x:9302}{cdhilmrstw}{ml.machine_memory=8078663680, xpack.installed=true, transform.node=true, ml.max_open_jobs=20,
ml.max_jvm_size=536870912}, {master-1}{H4T0B4AdTiWVYHW9Dzi0qw}{tQlVqLzYT3OJXtaug6K3cQ}{x.x.x.x}{x.x.x.x:9300}{cdhilmrstw}{ml.machine_memory=8078663680,
ml.max_open_jobs=20, xpack.installed=true, ml.max_jvm_size=536870912, transform.node=true},
{master-1}{yQiAG1tJS7uwgNiyJ3suWg}{k4haC3AdQXiSrceLevHHaA}{x.x.x.x}{x.x.x.x:9301}{cdhilmrstw}{ml.machine_memory=8078663680, ml.max_open_jobs=20, xpack.installed=true, ml.max_jvm_size=536870912, transform.node=true}]; discovery will continue using [127.0.0.1:9300] from hosts providers and [{master-1}{RVGdv8o4R7mEZS8G3pF9IQ}{Ue_VMHc_RFqOjLeW9aJiUw}{x.x.x.x}{x.x.x.x:9302}{cdhilmrstw}{ml.machine_memory=8078663680, xpack.installed=true, transform.node=true, ml.max_open_jobs=20, ml.max_jvm_size=536870912}]
from last-known cluster state; node term 0, last-accepted version 0 in term 0
任何帮助将不胜感激!!!
【问题讨论】:
-
您的配置显示 3 个节点,您是在同一主机上运行 3 个节点吗?如果这是正确的,您需要为每个节点使用不同的
path.data。如果你想要一个单节点集群,你不能在cluster.initial_master_nodes配置中有其他节点,你还需要设置discovery.type: single-node。你能更好地解释你想要做什么吗?你说你想要一个节点,但你的配置有三个节点。 -
谢谢。是的,我在同一主机上运行三个节点。我也尝试更改路径,但它不起作用集群形成没有发生。我需要设置 elasticsearch 集群并在 gravitee api 网关中配置它以实现高可用性
-
@leandrojmp 抱歉,我已经更新了我的问题。在单机中,我正在创建 3 个节点
-
配置似乎正确,但尝试将
discovery.seed_hosts更改为您机器的私有IP,看看是否可行。其他节点的日志中还有其他内容吗?无论如何,在同一台服务器上运行 3 个节点,您将无法获得高可用性,如果您的服务器出现故障,您的整个集群都会出现故障。在这种情况下,在同一台服务器上运行单节点或 3 节点集群没有区别。 -
我尝试更换种子主机,但它不起作用。如果我更改了数据路径,它也使用旧数据路径而不是使用新创建的路径
标签: linux elasticsearch centos