【问题标题】:elastic search master not discovered in single node cluster elastic search v 7.11.1在单节点集群弹性搜索 v 7.11.1 中未发现弹性搜索主机
【发布时间】: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


【解决方案1】:

如下更改 YML:

node1:
http.port: 9200
transport.port:9300
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["master-1"]
node2:
http.port: 9201
transport.port:9301
discovery.seed_hosts: ["127.0.0.1:9300"]
cluster.initial_master_nodes: ["master-1:9300"]
node3:
http.port: 9202
transport.port:9302
discovery.seed_hosts: ["127.0.0.1:9300"]
cluster.initial_master_nodes: ["master-1:9300"]

【讨论】:

  • 感谢哈米德巴亚特。我尝试了您提到的配置,但在启动节点 2 时遇到了无法绑定 127.0.0.1:9300 错误
  • 在此之前检查9200和ip的绑定是什么? netstat -anpl |grep 9200. 是 127.0.0.1 吗?
  • 在 /etc/hosts 中配置 127.0.0.1 master-1
  • 127.0.0.1:9200 。 9300 端口出现端口绑定错误
  • 找不到 0.0.0.0:9300
【解决方案2】:

在启动集群之前,我们需要确保节点已创建。创建节点后,集群正在按预期形成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多