Elasticsearch7.9.3 集群-降级

本文详细阐述了Elasticsearch单机多节点集群启动失败的常见原因,涉及选举配置、数据持久化和节点剔除策略。通过清空data目录、配置排除和逐步停机,教你如何在节点数量不足时恢复服务并避免数据丢失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ElasticSearch启动失败:master not discovered or elected yet, an election requires at least X nodes with ids from [XXXXX]

做一个单机三个节点的集群, 如果一次性全部停掉,再启动master节点时,就会提示上面的信息

主要有两点原因,

1)如果ES集群是第一次启动时,已经加入集群的几点信息保存在data目录下,以供下次启动使用,这样也就是说cluster.initial_master_nodes就不在起作用了

2)每个ES集群都维护一个选举配置集合(Voting Configurations),这个选举集合由可以选举为主节点的master类型节点组成.它除了提供选举功能,还决定者集群的状态,当选举配置集合中超过一半的节点存活时,集群才提供服务(也就是过半原则,通常集群解决脑裂问题都是采用这种方式).也就是说3个节点,挺掉一个,还有两个,属于过半了,不会有什么问题.但如果一下3个全停了,那就完犊子了.三个服务都彻底不能用了

但如果不愿意启动多个节点,也就是要将多节点集群降级,也就是如何减少集群中的节点数呢?发现很多推荐做法是清空data目录,确实这样相当于重新启动而创建一个全新的集群,可以解决问题,但是结果是导致所有的数据丢失.所以只能一个一个的停,每停一个节点,向主节点的voting_config_exclusions中添加一下要删除节点的ID或者名称

具体操作:

1) 添加排除,也就是从配置集合中删除,可以使用节点Id(node_ids)或者节点名称(node_names)来排除,如果执行失败.加上参数 wait_for_removal=false 试试

用PostMan向主节点Post http://localhost:9201/_cluster/voting_config_exclusions?node_names=node-1002,node-1003

2) 查看排除列表

用PostMan向主节点Get http://localhost:9201/_cluster/state?filter_path=metadata.cluster_coordination.voting_config_exclusions&pretty

3)然后就可以停掉节点node-1002,node1003

4)清空列表 用PostMan向主节点 Delete http://localhost:9201/_cluster/voting_config_exclusions

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wang_peng

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

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

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

打赏作者

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

抵扣说明:

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

余额充值