永久删除 Elasticsearch 中的主节点

Elasticsearch 是一个开源分布式搜索和分析引擎,用于各种任务,例如全文搜索、日志分析和实时数据分析。 Elasticsearch 集群由一个或多个节点组成,每个节点可以具有多种角色,包括主节点(master node)、数据节点 (data node)、摄取节点 (ingest node) 和机器学习节点 (machine learning node)。

在本文档中,我们将重点讨论从 Elasticsearch 集群中永久删除一个主节点。 在各种场景中可能需要此操作,例如重组集群或通过添加新节点来扩展集群。

当前和所需的集群配置

在所提供的示例中,当前的 Elasticsearch 集群由两个具有所有角色的节点和一个 master-voting-only 节点组成。 后者是参与主节点选举投票的节点,但不保存数据或处理搜索或索引请求。

目标是通过添加三个新节点来扩展集群。 这些新节点之一将被指定为主节点,而现有的仅主投票节点将被删除。 此外,其中两个新节点将具有除主节点之外的所有角色。

  • 当前配置:2 个节点(所有角色)+ 1 个 master-voting-only 节点
  • 所需配置:3 个节点(所有角色)+ 2 个节点(除主节点外的所有角色)

为什么需要三个主节点?

更多关于 Elasticsearch 节点的描述,请参考文章 "Elasticsearch 中的一些重要概念: cluster, node, index, document, shards 及 replica"。

在 Elasticsearch 集群中,主节点负责集群范围内的轻量级操作,例如创建或删除索引、确定将哪些分片分配给新节点以及删除不响应的节点。

拥有单个主节点会导致单点故障,如果该节点发生故障,可能会导致停机。 拥有两个主节点可能会导致 "裂脑 (split brain)" 情况,如果两个主节点彼此失去连接,集群就会分为两个独立的集群,每个集群都有自己的主节点。

为了避免这些问题,建议集群中至少有三个符合主节点资格的节点。 原因是 Elasticsearch 使用基于仲裁的投票系统来选举主节点。 仲裁的计算方式为 (master_eligible_nodes / 2) + 1。因此,在三节点集群中,至少有两个节点需要同意选举新的主节点,以防止出现裂脑情况。

主节点删除流程

从 Elasticsearch 集群中删除主节点可以通过关闭该节点来执行。 但是,需要注意的是,即使在删除该节点后,集群也可能会继续 "记住" 该节点。 这是因为 Elasticsearch 维护了一个符合条件的主节点列表,以保证集群的稳定性。

删除 master-voting-only 节点并添加新节点后,集群仍将具有三个主节点。 这些节点将形成新的集合,根据 Elasticsearch 的共识算法,这些节点中的任何两个都足以形成法定人数并做出有关集群的决策。

节点角色分配

关于将除 "master" 之外的所有角色分配给节点,可以通过在节点的 yml 配置文件中显式指定所有角色来完成。

例如,如果你希望一个节点具有除 master 之外的所有角色,你可以在节点的 yml 配置文件中指定,如下所示:

复制代码
node.roles: [ data, ingest, ml, remote_cluster_client, transform ]

在此示例中,除主角色之外的所有角色都分配给该节点。

自动删除不可用的主节点

Elasticsearch 有一项功能,可以自动从投票配置中删除不可用的主节点。 此功能由 cluster.auto_shrink_voting_configuration 属性控制,需要将其设置为 true。 启用此属性后,如果节点关闭,Elasticsearch 将 "最终" 从投票配置中删除任何不可用的主节点。

结论

从 Elasticsearch 集群中删除主节点是一项复杂的操作,需要深入了解集群配置以及此类操作的含义。

相关推荐
江瀚视野35 分钟前
WPS深度适配鸿蒙电脑折叠形态,国产替代下的未来何在?
大数据
coding随想1 小时前
深入浅出Hadoop:大数据时代的“瑞士军刀”
大数据·hadoop·分布式
Ultipa2 小时前
云计算与大数据进阶 | 26、解锁云架构核心:深度解析可扩展数据库的5大策略与挑战(下)
大数据·云计算
鸭鸭鸭进京赶烤3 小时前
第六届电子通讯与人工智能国际学术会议(ICECAI 2025)
大数据·图像处理·人工智能·hadoop·机器学习·数据挖掘
塔能物联运维4 小时前
塔能科技:工厂能耗精准节能全方位解决方案
大数据·网络·人工智能
大势智慧4 小时前
6.6重建大师常见空三问题
大数据·人工智能·科技·三维重建·实景三维
忘了ʷºᵇₐ5 小时前
MapReduce-Top N程序编写与运行
大数据·hadoop·maven·mapreduce·idea
IvanCodes6 小时前
十五、Hive 窗口函数
大数据·hive·sql
189228048616 小时前
NV013NV024美光固态闪存NV028NV034
大数据·网络·人工智能·科技
不爱学英文的码字机器6 小时前
[Git] 基本操作及用户配置
大数据·git·elasticsearch