ElasticSearch集群升级方案(7.6到7.17)

news/2025/2/13 2:01:01/

作者:鱼仔

博客首页: https://codeease.top

公众号:Java鱼仔

前言

只前项目里用的ES一直是7.6.2版本,后来得到通知需要将集群升级到7.17.13,因此写下这篇文章做个记录。

前期准备

升级版本:7.6.2 -> 7.17.13

机器数量:三台Linux服务器组成的集群

下载:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

在上面的官网中下载7.17.13版本tar包

参考文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/restart-upgrade.html

在官方文档中提供了滚动升级和停止后的升级,本次升级采用全部停止后的升级。

应用依赖升级

maven依赖从7.6.2升级到7.17.13

<dependency><groupId>org.elasticsearch.client<groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.17.13</version>
</dependency>

有一些类的位置在这个版本发生了变化,对于编译报错的类换成新的import就行。

服务迁移

关闭应用

首先把所有用到ES的应用全部关闭。

禁用分片分配

当关闭数据节点时,分配过程将等待 index.unassigned.node_left.delayed_timeout(默认为一分钟)并将该节点上的分片复制到集群中的其他节点, 这可能涉及大量 I/O。由于该节点很快就会重新启动后,此 I/O 是不必要的

PUT _cluster/settings
{"persistent": {"cluster.routing.allocation.enable": "primaries"}
}

停止索引并执行同步刷新

POST _flush/synced

如果执行失败需要重新再执行一次

关闭所有节点

首先通过下面的命令找到es对应的进程号

ps -ef | grep elasticsearch

接着执行kill命令

kill <PID>

部署新的ES服务

将文件上传到和原本ES7.6.2的同级目录,执行解压缩命令

tar -xvf elasticsearch-7.17.13-linux-x86_64.tar.gz

接着将原来ES路径下config文件复制到新的路径下

cp -rf elasticsearch/config/* elasticsearch-7.17.13/config

在另外的两台服务器上也执行同样的操作。

这里需要注意elasticsearch.yml文件中的data地址和logs地址是否是绝对路径,如果是相对路径需要手动调整。

启动新的ES

进入新的ES目录下,执行下面的启动命令

./bin/elasticsearch -d

在页面上访问IP:9200,如果出现You Know,for Search则代表成功

重新启用分片

PUT _cluster/settings
{"persistent": {"cluster.routing.allocation.enable": null}
}

检查数据是否正常,重新启动应用。


http://www.ppmy.cn/news/1297867.html

相关文章

AI数字人虚拟现实产业的发展现状与展望

AI数字人虚拟现实产业是当今科技领域备受瞩目的发展方向之一。随着人工智能和虚拟现实技术的迅猛发展&#xff0c;人们对于数字形象的需求不断增加&#xff0c;AI数字人虚拟现实产业正应运而生。本文将从产业现状和未来展望两个方面来描绘AI数字人虚拟现实产业的发展。 首先&a…

Spring MVC(day1)

什么是MVC MVC是一种设计模式&#xff0c;将软件按照模型、视图、控制器来划分&#xff1a; M&#xff1a;Model&#xff0c;模型层&#xff0c;指工程中的JavaBean&#xff0c;作用是处理数据 JavaBean分为两类&#xff1a; 一类称为数据承载Bean&#xff1a;专门存储业务数据…

竞赛保研 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

【温故而知新】JavaScript的防抖与节流

一、概念 JavaScript中的防抖&#xff08;debounce&#xff09;和节流&#xff08;throttle&#xff09;是用于控制函数执行频率的技术。 防抖&#xff1a;当一个事件连续触发时&#xff0c;防抖技术将只执行最后一次触发事件的函数调用。换句话说&#xff0c;只有在停止触发…

代码随想录算法训练营第一天| 27 移除元素 704 二分查找

目录 27 移除元素 704 二分查找 27 移除元素 快指针遍历&#xff0c;慢指针记录 class Solution { public:int removeElement(vector<int>& nums, int val) {int l 0,r 0;for(;r < nums.size();r){if(nums[r] val){}else{nums[l] nums[r];}}return l;} }; …

spring-boot项目启动类错误: 找不到或无法加载主类 com.**Application

问题&#xff1a;Springboot项目启动报错&#xff1a;错误: 找不到或无法加载主类 com.**Application 解决步骤&#xff1a; 1.File–>Project Structure 2.Modules–>选中你的项目–点击“-”移除 3.重新导入&#xff1a;点击“”号&#xff0c;选择Import Module&…

翻译:Building Efficient RAG Systems: A Deep Dive into devv.ai

RAG 的全称是&#xff1a;Retrieval Augmented Generation&#xff08;检索增强生成&#xff09; 最初来源于 2020 年 Facebook 的一篇论文&#xff1a;Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks&#xff08;是的&#xff0c;你没有看错&#xff0c;…

OpenCV-Python(28):基于GrabCut 算法交互式前景提取

目标 GrabCut 算法原理&#xff0c;使用GrabCut 算法提取图像的前景 创建一个交互是程序完成前景提取 介绍 GrabCut算法是一种基于图像分割的算法&#xff0c;用于将图像中的前景物体从背景中准确地分离出来。它是由Carsten Rother等人于2004年提出的。 GrabCut算法的基本思想…