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:如何使用集群级别的分片分配过滤(不包括节点)安全地停用节点

相关推荐
Elasticsearch7 小时前
ES8 向量功能窥探系列(二):向量数据的存储与优化
elasticsearch
安审若无8 小时前
Elasticsearch中的监控(Monitoring)功能介绍
elasticsearch·搜索引擎·全文检索
leo_hush8 小时前
elasticsearch基本操作笔记
elasticsearch
咸鱼求放生19 小时前
es在Linux安装
大数据·elasticsearch·搜索引擎
xyhshen19 小时前
k8s下离线搭建elasticsearch
elasticsearch·容器·kubernetes
@泽栖1 天前
ES数据聚合
elasticsearch·搜索引擎
張萠飛1 天前
Linux下如何使用shell脚本导出elasticsearch中某一个index的数据为本地csv文件
linux·运维·elasticsearch
LanLance1 天前
ES101系列09 | 运维、监控与性能优化
java·运维·后端·elasticsearch·云原生·性能优化·golang
疯狂的沙粒1 天前
如何通过git命令查看项目连接的仓库地址?
大数据·git·elasticsearch
IT成长日记2 天前
Elasticsearch集群手动分片分配指南:原理与实践
大数据·elasticsearch·手动分片分配