Elasticsearch:如何从 Elasticsearch 集群中删除数据节点

Elasticsearch 集群通常包含多个节点,并且可能存在需要从集群中删除节点的情况。 应谨慎执行此过程,以确保数据的完整性和可用性。 在本文中,我们将引导你完成从 Elasticsearch 集群安全删除节点的步骤。

确保集群是绿色的

在尝试从 Elasticsearch 集群中删除节点之前,确保集群处于健康状态(以 "绿色" 状态表示)至关重要。 绿色集群意味着所有主分片和副本分片均已分配并且 Elasticsearch 运行顺利。 要检查集群状态,你可以使用以下 Elasticsearch API 调用:

bash 复制代码
GET _cluster/health

在继续删除过程之前,请确保响应中的 "status" 字段为 "绿色"。如果集群状态为 "黄色" 或 "红色",则表明分片分布存在问题,你应该首先解决这些问题。

将分片移动到其他节点

要安全地从 Elasticsearch 集群中删除节点,你必须将其分片重新分配到其他节点。 这是确保集群数据可用性和可靠性的关键一步。 使用以下 Elasticsearch API 调用排除要删除的节点:

bash 复制代码
1.  PUT _cluster/settings
2.  {
3.    "transient": {
4.      "cluster.routing.allocation.exclude._ip": "10.0.0.1"
5.    }
6.  }

将 "10.0.0.1" 替换为您要删除的节点的 IP 地址。

此命令将显示有关分片分配的信息,包括磁盘使用情况和节点详细信息。 当你看到所有分片已分配给其他节点并且你要删除的节点不再托管任何分片时,你可以安全地继续删除该节点。

不过,按 IP 地址排除并不是唯一的过滤方式。 事实上,有许多属性可以用来排除。

这是一个列表:

  • _name:可以通过节点名匹配节点
  • _host_ip:可以通过主机IP地址匹配节点(IP与主机名相关联)
  • _publish_ip:可以通过发布 IP 地址匹配节点
  • _ip:你可以匹配 _host_ip 或 _publish_ip
  • _host:可以通过主机名匹配节点
  • _id:可以通过节点 id 匹配节点
  • _tier:可以通过节点的数据层角色匹配节点

监控分配过程

必须密切关注分配过程,以确保所有分片已成功重新定位到其他节点。 你可以使用 Elasticsearch cat API 来执行此操作,如下所示:

bash 复制代码
GET _cat/allocation?v

此命令将显示有关分片分配的信息,包括磁盘使用情况和节点详细信息。 当您看到所有分片已分配给其他节点并且您要删除的节点不再托管任何分片时,你可以安全地继续删除该节点。

对其他节点重复步骤

如果要从 Elasticsearch 集群中删除多个节点,请对要从集群中删除的每个节点重复步骤 2 和 3。 这种增量方法可确保你在整个删除过程中保持 Elasticsearch 集群的稳定性和可用性。

结论

从 Elasticsearch 集群中删除节点是一项微妙的操作,需要仔细规划和执行。 通过遵循本指南中概述的步骤,你可以安全地重新分配分片、监控分配过程并维护数据的完整性。 在进行任何更改之前,请务必记住查阅 Elasticsearch 文档并考虑集群的特定需求。 正确管理集群操作(例如节点删除)对于确保 Elasticsearch 部署的持续可靠性和性能至关重要。

继续阅读:Elasticsearch:如何使用集群级别的分片分配过滤(不包括节点)安全地停用节点

相关推荐
老纪的技术唠嗑局18 小时前
告别OpenClaw配置丢失——Mindkeeper内测版邀测
大数据·elasticsearch·搜索引擎
Elasticsearch18 小时前
使用 Elasticsearch + Jina embeddings 进行无监督文档聚类
elasticsearch
勇哥的编程江湖21 小时前
flinkcdc streaming 同步数据到es记录过程
大数据·elasticsearch·flink·flinkcdc
曾阿伦21 小时前
Elasticsearch 7.x 常用命令备忘录
大数据·elasticsearch·搜索引擎
斯特凡今天也很帅1 天前
Elasticsearch数据库专栏(二)DSL语句总结(更新中)
大数据·elasticsearch·搜索引擎
要记得喝水1 天前
适用于 Git Bash 的脚本,批量提交和推送多个仓库的修改
git·elasticsearch·bash
二十七剑1 天前
Elasticsearch的索引问题
大数据·elasticsearch·搜索引擎
A__tao1 天前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
A__tao1 天前
Elasticsearch Mapping 一键生成 Proto 文件(支持嵌套 + 注释过滤)
大数据·elasticsearch·jenkins
Devin~Y1 天前
高并发电商与AI智能客服场景下的Java面试实战:从Spring Boot到RAG与向量数据库落地
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag