您的位置:首页 > 财经 > 金融 > Elasticsearch 分片迁移与移除集群节点操作

Elasticsearch 分片迁移与移除集群节点操作

2024/11/17 21:11:32 来源:https://blog.csdn.net/qq_29864051/article/details/142350144  浏览:    关键词:Elasticsearch 分片迁移与移除集群节点操作

Elasticsearch 分片迁移与移除集群节点操作

问题背景

在单台服务器上部署了 7 个 Elasticsearch 节点,分别为 es-node1 到 es-node7,端口从 9201 到 9207。每个节点都承载大量数据,但没有设置副本分片。由于多个节点共享同一台服务器的硬件资源,复杂查询时会导致 CPU 占用率达到 100%,查询响应时间也超过 8 秒。

当前的索引配置为 30 个主分片,0 副本分片:

{"aliases": {"cqu_dev_journal_thesis": {}},"settings": {"number_of_shards": 30,"number_of_replicas": 0,"index": {"refresh_interval": "5s","max_inner_result_window": "10000","max_result_window": "20000"}},"mappings": {"dynamic": "strict"}
}

由于 es-node6 和 es-node7 节点负担较重,计划停止并移除这两个节点以优化系统性能。

操作步骤

1. 确认集群健康状态

首先,需要确保当前数据的健康状态。通过以下命令检查集群状态:

http://<es-node1-ip>:9201/_cluster/health?pretty

该命令会返回集群的健康状态,如果返回的状态为 green,说明所有分片都已正常分配。如果状态是 yellowred,需要小心操作确保不会影响数据。

image-20240918150729915

2. 重新分配分片

由于计划停止的两个节点上持有主分片,首先需要将它们上的分片迁移到其他节点。

  • 防止新分片分配到 es-node6 和 es-node7:通过以下命令将分片迁移到其他节点,并防止新的分片分配到这两个节点上:
PUT /_cluster/settings
{"transient": {"cluster.routing.allocation.exclude._name": "es-node6,es-node7"}
}

此设置会告诉集群不再将分片分配到 es-node6 和 es-node7 上,现有的分片也会开始自动迁移到 es-node1 到 es-node5。

image-20240918150836936

3. 监控分片迁移

可以通过以下命令查看分片的迁移状态:

http://<es-node1-ip>:9201/_cat/shards?v
  • 分片状态:当分片迁移完成后,state 字段会从 RELOCATING 变为 STARTED,表示分片已成功迁移并在新节点上运行。
  • 等待迁移完成:在所有分片都迁移完毕后,集群健康状态应为 green

image-20240918151130797

image-20240918151721937

image-20240918151919671

image-20240918153232349

4. 停止节点

确保所有分片迁移成功后,可以通过命令停止节点,此操作会安全地关闭 es-node6 和 es-node7 节点,不会影响其他节点的正常运行

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com