首页 > 其他分享 >Elasticsearch 分片迁移与移除集群节点操作

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

时间:2024-09-19 08:51:46浏览次数:13  
标签:移除 Elasticsearch node7 分片 集群 迁移 节点 es

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

标签:移除,Elasticsearch,node7,分片,集群,迁移,节点,es
From: https://blog.csdn.net/qq_29864051/article/details/142350144

相关文章

  • 【Elasticsearch系列】Elasticsearch中的分页
    ......
  • 27. 移除元素
    题目描述:给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素。元素的顺序可能发生改变。然后返回nums中与val不同的元素的数量。假设nums中不等于val的元素数量为k,要通过此题,您需要执行以下操作:更改nums数组,使nums的前k个元素包含不等于......
  • 代码随想录Day3 | LeetCode 203. 移除链表元素、LeetCode 707. 设计链表、LeetCode 20
    LeetCode203.移除链表元素链表基础概念题,也可以用递归做,不过我们把递归的思想放在更能体现它的LeetCode206.反转链表#Definitionforsingly-linkedlist.#classListNode:#def__init__(self,val=0,next=None):#self.val=val#self.next......
  • 代码随想录算法训练营第一天|704二分查找 27移除数组 977.有序数组的平方
    704二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例 2:输......
  • 代码随想录算法训练营第三天|203移除链表元素 707设计链表 206反转链表
    203.移除链表元素题意:删除链表中等于给定值val的所有节点。示例1:输入:head=[1,2,6,3,4,5,6],val=6输出:[1,2,3,4,5]示例2:输入:head=[],val=1输出:[]示例3:输入:head=[7,7,7,7],val=7输出:[]链表一直是处理的不太好的数据结构,太久没处理过,第一次做......
  • 【Elasticsearch系列四】ELK Stack
    ......
  • Elasticsearch和向量数据库的快速入门
    在比较Elasticsearch和向量数据库之前,让我们简要解释它们是什么:什么是Elasticsearch?Elasticsearch是一个流行的开源搜索和分析引擎,建立在ApacheLucene之上。它专为全文搜索、分析和日志分析用例而设计。主要特点:文档导向的NoSQL数据库分布式和可扩展的架构实时搜索和分析无需......
  • LeetCode 2390. 从字符串中移除星号(字符串、栈)
    题目:2390.从字符串中移除星号思路:使用栈就可以,这里string也可以实现栈的效果classSolution{public:stringremoveStars(strings){stringe="";for(autox:s){if(x=='*')e.pop_back();elsee.push_back(x);......
  • 2390. 从字符串中移除星号
    给你一个包含若干星号*的字符串s。在一步操作中,你可以:选中s中的一个星号。移除星号左侧最近的那个非星号字符,并移除该星号自身。返回移除所有星号之后的字符串。注意:生成的输入保证总是可以执行题面中描述的操作。可以证明结果字符串是唯一的。示例1:输入:s=......
  • 重生之我在代码随想录刷算法第一天 | 704.二分查找、27.移除元素
    参考文献链接:代码随想录本人代码是Java版本的,如有别的版本需要请上代码随想录网站查看。704.二分查找力扣题目链接解题思路这道题明确规定了数组是有序并且不重复的,要在这样的数组中寻找一个给定值的位置不由得让我想起来以前的数学知识二分查找。所以很快确定了思路......