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

server/2024/9/23 19:43:22/

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 节点,不会影响其他节点的正常运行


http://www.ppmy.cn/server/120953.html

相关文章

vue 中互相不关联的两个组件怎么进行通信(数据传输)

1、Vuex Vuex 是 Vue 官方的状态管理模式与库。通过使用 Vuex&#xff0c;可以将组件间共享的数据存储在一个全局的状态树中&#xff0c;任何组件都可以读取这个状态&#xff0c;通过提交 mutations 或 dispatch actions 来修改状态。 2、Event Bus (事件总线) 创建一个全局的…

Redis面试常见问题

1.Redis的常用类型 Redis常用的类型也就那五个&#xff0c;我想经常看各大八股文的小伙伴&#xff0c;应该都熟练于心了吧&#xff01;它们分别是String、Hash、List、Set、ZSet&#xff1b;接下来跟我一起分析这五大常用类型 String数据类型格式&#xff1a;key valueHash数…

活动报名| 探索存内计算的未来,共话AGI时代

活动日期&#xff1a;2024年09月28日 下午一点到6点 地点&#xff1a;杭州技术转移中心 三楼路演厅 议程亮点&#xff1a; 存内计算技术架构以及最新趋势AGI开源项目交流存内计算实操上板体验 存内计算 ——突破物理极限的下一代算力技术 直接消除“存”“算”界限&…

【算法思想·二叉树】最近公共祖先问题

本文参考labuladong算法笔记[拓展&#xff1a;最近公共祖先系列解题框架 | labuladong 的算法笔记] 0、引言 如果说笔试的时候经常遇到各种动归回溯这类稍有难度的题目&#xff0c;那么面试会倾向于一些比较经典的问题&#xff0c;难度不算大&#xff0c;而且也比较实用。 本…

爱因斯坦到底说过?没说过?人类认知之源在何处

目录 说过&#xff1f;没说过&#xff1f;说过&#xff01;没说过&#xff01; 个人想法说过&#xff01; 参考链接及文献 说过&#xff1f;没说过&#xff1f; 近来研究大脑发育&#xff0c;遇到了一个问题就是为什么大脑可以认识世界&#xff0c;其次才是如何认识世界。记得…

Git可视化工具和基础命令

简介 TortoiseGit 是一款专为 Windows 系统设计的 Git 可视化工具&#xff0c;它通过在资源管理器中添加右键菜单选项&#xff0c;使用户能够轻松地执行 Git 操作&#xff0c;而无需记忆复杂的命令行指令。以下是对 TortoiseGit 的详细分析&#xff0c;以帮助用户更好地理解和…

Leetcode 除自身以外数组的乘积

class Solution {public int[] productExceptSelf(int[] nums) {int length nums.length;//一维数组 answer[]存储最终的结果//首先从左往右记录乘积&#xff0c;暂时存储到一维数组 answer[] 中int[] answer new int[length];//先从左往右, 由于由于第一个元素左边没有元素&…

深度学习——基础知识

深度学习的重点在于优化&#xff0c;其中很重要的步骤在于如何调参&#xff0c;会涉及到一些微积分等数学知识。不同于以往接触到的数值运算&#xff0c;深度&#xff08;机器&#xff09;学习都是关于张量Tensor&#xff08;向量&#xff09;的计算&#xff0c;Python中最常用…