ES集群状态检查报错:master_not_discovered_exception 503错误

一、故障描述

在这里插入图片描述

在完成ES集群部署,启动后,执行ES集群状态检查发现,集群报错503错误,如下所示:
在这里插入图片描述
环境:Elasticsearch 7.0.1;JDK版本1.8.0_211

二、处理过程

1、修改elasticsearch.yml将cluster初始化节点,三个都全写上。
在这里插入图片描述
修改cluster.initial_master_nodes: [“Namenode”, “Datanode2”]为
cluster.initial_master_nodes: [“Namenode”, “Datanode2”,“Datanode1”]
#Bootstrap the cluster using an initial set of master-eligible nodes:使用一组初始的可用主节点集合引导集群
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、重新启动
在这里插入图片描述
由上可知,ES集群已选举master完成。

3、验证:执行ES集群监控检查命令

curl -X GET "localhost:9200/_cat/health?v&pretty"  ##返回如下

在这里插入图片描述
在这里插入图片描述

4、剩余2个节点也如上修改ES配置文件中的,
在这里插入图片描述

三、ES集群配置文件

1)位于 config 目录下的三个配置文件:

elasticsearch.yml :用于配置 Elasticsearch
jvm.options :用于配置 Elasticsearch JVM 设置
log4j2.properties:用于配置 Elasticsearch 日志记录的

2)ES集群发现配置

在投入生产之前,应该配置2个重要的集群发现和集群组成设置,以便集群中的节点可以相互发现并可成功选举出主节点。

1>discovery.seed_hosts配置项:当在同一主机配置es多实例时,启动集群会自动扫描 9300 to 9305的回环地址,连接其他es实例;但是如果es集群中的实例时分布在不通主机上时,就需要配置该配置项,指定组成ES集群的其他节点,这些节点都是可以成为Master的,从而提供给discovery 进程读取;此设置通常应包含集群中所有符合主节点条件的节点的地址。格式必须为host:port or host组成的数组或逗号隔开的字符串。端口默认对应 transport.profiles.default.port的设置。

2>cluster.initial_master_nodes:当第一次启动一个全新的 Elasticsearch 集群时,会有一个集群引导步骤,该步骤确定了在第一次选举中计票后符合成为主节点资格的节点集。在生产环境下,启动一个全新的ES集群时,必须明确列出应在第一次选举中计票的主合格节点。

3)ES集群heap size配置

默认情况下,Elasticsearch 会告诉 JVM 使用最小和最大大小为 1 GB 的堆内存。但是到生产环境时,该内存将无法满足实际,因此配置适合的堆大小以确保 Elasticsearch 有足够的可用堆非常重要。

在ES的config/ jvm.options文件中,ES将声明使用堆内存的情况,包括:Xms (minimum heap size) and Xmx (maximum heap size) 配置,且这2个需配置成大小一致的。Elasticsearch 可用的堆越多,它可以用于缓存的内存就越多。但过多的堆也会使ES遭受长时间的垃圾收集暂停。官方建议配置xmx为物理内存的50%左右即可。
-Xms2g
-Xmx2g
也可以通过ES_JAVA_OPTS来设置:

ES_JAVA_OPTS="-Xms2g -Xmx2g" ./bin/elasticsearch
ES_JAVA_OPTS="-Xms4000m -Xmx4000m" ./bin/elasticsearch

另外,尽量保持在基于零的压缩 oops 的阈值以下;确切的截止值会有所不同,但在大多数系统上 26 GB 是安全的,但在某些系统上可能高达 30 GB。通过配置
-XX:+UnlockDiagnosticVMOptions
-XX:+PrintCompressedOopsMode
启动ES集群,观察集群日志是否输出如下类似:
heap address: 0x000000011be00000, size: 27648 MB, zero based Compressed Oops

4)临时目录配置

可用环境变量$ES_TMPDIR指定。默认情况下,Elasticsearch启动脚本会在系统临时目录下创建一个自己的私有临时目录来使用。应该为 Elasticsearch 创建一个专用临时目录,该目录不会被清除旧文件和目录且应设置权限,以便只有运行 Elasticsearch 的用户才能访问它。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这个错误是由于Elasticsearch集群中的主节点无法被发现而引起的。可能的原因是集群中的节点无法相互通信,或者配置文件中的IP地址不正确。解决此问题的方法是检查集群节点之间的通信是否正常,并确保配置文件中的IP地址正确。您可以按照以下步骤解决此问题: 1. 检查集群节点之间的通信是否正常。 2. 检查配置文件中的IP地址是否正确。 3. 修改配置文件中的IP地址并重启Elasticsearch服务。 4. 再次查询健康状态,确保已经恢复正常。 具体操作步骤如下: 1. 检查集群节点之间的通信是否正常。 您可以使用telnet命令测试节点之间的通信是否正常。例如,如果您的节点IP地址为10.0.0.1,您可以使用以下命令测试节点之间的通信: ``` telnet 10.0.0.1 9200 ``` 如果连接成功,则表示节点之间的通信正常。如果连接失败,则表示节点之间的通信存在问题。 2. 检查配置文件中的IP地址是否正确。 您需要检查配置文件中的IP地址是否正确。您可以使用vim编辑器打开配置文件并检查IP地址。例如,如果您的配置文件路径为/etc/elasticsearch/elasticsearch.yml,您可以使用以下命令打开配置文件: ``` vim /etc/elasticsearch/elasticsearch.yml ``` 然后,您需要检查以下两个配置项的IP地址是否正确: ``` discovery.seed_hosts: ["10.0.0.X","10.0.0.X","10.0.0.X"] cluster.initial_master_nodes: ["10.0.0.X","10.0.0.X","10.0.0.X"] ``` 确保IP地址与您的节点IP地址匹配。 3. 修改配置文件中的IP地址并重启Elasticsearch服务。 如果IP地址不正确,您需要修改配置文件中的IP地址并重启Elasticsearch服务。您可以使用vim编辑器打开配置文件并修改IP地址。例如,如果您的配置文件路径为/etc/elasticsearch/elasticsearch.yml,您可以使用以下命令打开配置文件: ``` vim /etc/elasticsearch/elasticsearch.yml ``` 然后,您需要修改以下两个配置项的IP地址: ``` discovery.seed_hosts: ["10.0.0.X","10.0.0.X","10.0.0.X"] cluster.initial_master_nodes: ["10.0.0.X","10.0.0.X","10.0.0.X"] ``` 将IP地址修改为正确的IP地址,并保存文件。然后,您需要重启Elasticsearch服务以使更改生效。您可以使用以下命令重启Elasticsearch服务: ``` systemctl restart elasticsearch.service ``` 4. 再次查询健康状态,确保已经恢复正常。 您可以使用curl命令再次查询健康状态,确保已经恢复正常。例如,您可以使用以下命令查询健康状态: ``` curl http://127.0.0.1:9200/_cat/health ``` 如果健康状态已经恢复正常,则表示问题已经解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羌俊恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值