ElasticSearch-7.17.10集群升级至ElasticSearch-7.17.24

文章目录

集群概览

主机名系统版本
es01CentOS_7.6-aaarch64ElasticSearch-7.17.10
es02CentOS_7.6-aaarch64ElasticSearch-7.17.10
es03CentOS_7.6-aaarch64ElasticSearch-7.17.10

需求

1. 将三台ES节点从ElasticSearch-7.17.10升级至ElasticSearch-7.17.24; 2. 保证索引数据的正常过度,滚动升级不中断业务。

准备工作

下载新版本

下载对应的升级版本,我们选择LINUX ARM架构版本:

https://www.elastic.co/downloads/past-releases/elasticsearch-7-17-24

备份数据

升级实施

确认节点升级顺序

curl http://localhost:9200/_cat/nodes?pretty

其中标有*号的是主节点,标有-的是从节点。

升级顺序按照:从->主来进行,先下线第一个节点,完成第一个节点升级后,再进行第二个节点,最后升级主节点。

禁用副本分配

执行代码如下:
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d '{"persistent": {"cluster.routing.allocation.enable": "primaries"}
}'

命令用于修改 Elasticsearch 集群的路由分配设置,在执行升级操作之前,需要暂时限制分片的重新分配,以保证集群的稳定性。

为什么在升级 Elasticsearch 集群之前要执行这个命令?

在升级 Elasticsearch 集群之前执行这个命令的原因,主要是为了 **保证数据和分片的稳定性**,防止在节点重新启动或重启过程中发生不必要的分片重新分配,避免集群在升级过程中的压力。具体有以下几点考虑:
  1. 防止副本分片的重分配: 当一个节点下线或重启时,Elasticsearch 可能会自动将副本分片重新分配到其他节点上,来保持数据的可用性。这样会增加集群的负载。如果集群在升级过程中节点频繁重启,这种行为可能导致大量的分片重分配操作,造成系统负载升高或资源耗尽。
  2. 确保主分片正常分配: 将分片分配限制为 primaries 意味着只允许主分片的分配。升级期间,如果一个节点下线,其他节点上的主分片依然可以继续提供服务,集群能维持最基本的操作。而副本分片的分配在升级完成后再恢复,可以减轻集群的压力。
  3. 降低网络流量和磁盘 I/O 压力: 在升级过程中,分片的重新分配会占用大量的网络带宽和磁盘 I/O。如果不限制副本分片的重新分配,集群可能会出现性能瓶颈甚至不稳定情况。

停止ES节点

将这台节点停止,找到pid然后kill:
ps -ef | grep elasticsearch

解压新版安装包

将安装包哦上传到对应目录,并解压,要提前在三台服务器上都分发执行。
tar -zxvf elasticsearch-7.17.24-linux-aarch64.tar.gz

复制config文件

将旧版本的config文件复制到新版本es中。
cp -r /data/elasticsearch-7.17.10/config/ /data/elasticsearch-7.17.24/

启动新版本

首先在一台节点上启动,启动之前记得把es用户组群权限赋给新版es。
cd /data/elasticsearch-7.17.24/bing
su es
./elasticsearch -d -p pid

恢复集群分片分配

curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d '{"persistent": {"cluster.routing.allocation.enable": null}
}'

设置 cluster.routing.allocation.enablenull 会移除之前的持久化设置("primaries"),让集群回到正常状态。如果不清理这个设置,集群将一直只分配主分片,副本分片不会被分配,导致数据冗余性缺失。

升级完成后执行此命令是为了让 Elasticsearch 集群恢复默认的分片分配行为,确保主分片和副本分片都能正常分配,恢复集群的高可用性和数据冗余性。这一操作是必不可少的,否则副本分片将持续处于未分配状态,集群的健壮性会受到影响。

滚动升级剩余节点

在第一台节点成功启动加入集群后,即可开始第二台节点的升级。

检查

升级流程中的检查步骤

  1. 升级前:

    • 在升级前,使用 curl -X GET "localhost:9200/_cat/health?v=true&pretty" 来确认集群处于 green 状态,确保所有分片和节点都在正常运行。
    • 使用 curl -X GET "localhost:9200/_cat/nodes?h=ip,name,version&v=true&pretty" 确认当前的节点信息和版本(应该是 7.17.10)。
  2. 升级中:

    • 升级过程中,每次重启节点之后,使用 curl -X GET "localhost:9200/_cat/health?v=true&pretty" 来检查集群的健康状态。如果出现 yellow 状态,是由于副本分片未分配,可以继续等待直到状态恢复为 green
    • 使用 curl -X GET "localhost:9200/_cat/recovery?pretty" 监控分片的恢复进度,尤其是在重启节点之后,查看数据恢复是否顺利进行。
  3. 升级后:

    • 升级完所有节点后,使用 curl -X GET "localhost:9200/_cat/nodes?h=ip,name,version&v=true&pretty" 确认所有节点都已经成功升级到 7.17.24,并且所有节点重新加入了集群。
    • 最后,通过 curl -X GET "localhost:9200/_cat/health?v=true&pretty" 再次确认集群处于 green 状态,所有主分片和副本分片都已经分配。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/454874.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装Python及pip使用方法详解

一、安装Python Python是一种广泛使用的高级编程语言,其安装过程相对简单。以下是具体步骤: 访问Python官网: 打开浏览器,访问Python的官方网站[python.org](https://www.python.org/),确保下载的是最新版本的Python安…

Leetcode 最小路径和

这段代码解决的是LeetCode第64题“最小路径和”,其核心思想是动态规划(Dynamic Programming,简称DP)。以下是算法的具体解释: 1. 问题描述: 我们给定一个包含非负整数的 m x n 网格(grid&…

060_基于python智能旅游系统

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍:CodeMentor毕业设计领航者、全网关注者30W群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AW…

2k1000LA 开机自动登录, 非root 用户

问题:客户需要 开机自动免密登录,目前的系统是需要在开机界面的时候,需要使用键盘来输入密码的。 先来看看网上的资料:  然后是我自己的操作: 做好备份。 然后是更改文件: /etc/lightdm/lightdm.conf

物理海洋随学笔记(一)

频散与非频散特征 在物理海洋学中,非频散特征意味着波的传播速度(相速度)不依赖于波长,或者说所有波长的波以相同的速度传播。对于具有非频散特性的波,波长不同的波不会在传播过程中分离开,这与频散波不同&…

【软件测试】理论杂记 + Selenium

文章目录 测试用例万能公式基于测试对象黑盒测试方法 白盒测试Selenium选择器CSS选择器XPath选择器 等待常用API浏览器操作 测试用例万能公式 功能,界面,易用,兼容,安全,性能,网络 基于测试对象 界面测试…

SpringCloud学习记录|day6

学习材料 2024最新SpringCloud微服务开发与实战,java黑马商城项目微服务实战开发(涵盖MybatisPlus、Docker、MQ、ES、Redis高级等) 复习MQ,学过的,应该会轻松一点吧。 RabbitMQ 交换机没有存储功能,必须…

Jupyter Notebook汉化(中文版)

原版jupyter notebook是英文的,想要将其改为中文 在jupyter notebook所在环境输入以下命令 pip install jupyterlab-language-pack-zh-CN打开jupyter notebook,在设置语言中将其设置为中文

Java中的进程与线程(如果想知道Java中有关进程与线程的知识点,那么只看这一篇就足够了!)

前言:在现代计算机系统中,进程和线程是实现并发和高效任务管理的核心概念。理解这两者的区别和联系,不仅对软件开发者至关重要,还能帮助用户更好地理解计算机的工作原理。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容…

12、论文阅读:SpikeYOLO:高性能低能耗目标检测网络

SpikeYOLO:高性能低能耗目标检测网络 前言解释介绍相关工作论文提出的方法网络输入SpikeYOLO架构概述网络输出宏观设计微观设计I-LIF脉冲神经元LIFI-LIF实验代码前言 脉冲神经网络(Spiking Neural Networks, SNNs)具有生物合理性和低功耗的优势,相较于人工神经网络(Artif…

SCCB协议与IIC协议不同

SCCB开始信号与结束信号都与IIC协议的大概一致,这里就不细讲了 开始、结束信号参考:【I2C】IIC读写时序_iic读时序-CSDN博客 SSCB写时序: 即:start phase_1 phase_2 phase_3 stop SCCB读时序: 即&#xff…

推荐IDE中实用AI编程插件,目前无限次使用

插件介绍 一款字节跳动推出的“基于豆包大模型的智能开发工具” 以vscode介绍【pycharm等都可以啊】,这个插件提供智能补全、智能预测、智能问答等能力,节省开发时间 直接在IDE中使用,就不用在网页中来回切换了 感觉还可以,响应速…

2024/10/23 (easycovery密匙激活码为什么这么贵)

2023年12月23号出现的问题又在今天遇到了,fuck. 已知文件删除前原位置路径和最后访问时间,如何恢复文件数据。

SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载

文章目录 前言一、控制器层代码二、服务层代码三、代码亮点分析 前言 SpringBoot的同步excel导出方式中,服务会阻塞直到Excel文件生成完毕,如果导出数据很多时,效率低体验差。有效的方案是将导出数据拆分后利用CompletableFuture,…

oracle数据库---基本查询(单表查询、多表查询、子查询、分页查询、oracle内置函数、行列转换、集合运算)

思维导图 单表查询 数据准备 -- 练习的表如果存在 请先删除 -- 如果不存在直接创建 drop table t_owners;--业主表 create table t_owners (id number primary key,name varchar2(30),addressid number,housenumber varchar2(30),watermeter varchar2(30),adddate date,owner…

docker环境安装mongoDB实现平滑迁移实战

docker环境安装mongoDB实现平滑迁移实战 一、备份原始数据(从别的服务器备份到当前服务器)二、数据迁移三、迁移过程日志打印四、验证迁移数据准确性 一、备份原始数据(从别的服务器备份到当前服务器) 使用mongodump工具对原始mo…

【C++ 算法进阶】算法提升四

数组查询问题 (数组优化) 题目 数组为 {3 , 2, 2 ,3 ,1} 查询为(0 ,3 ,2) 这个查询的意义是 在数组下标0~3这个范围上 有多少个2 (答案为2&…

《PP-OCRv1》论文精读:PaddleOCR是目前SOTA级别的OCR开源技术(截止2024年10月)

PP-OCR: A Practical Ultra Lightweight OCR System论文地址PP-OCRv2: Bag of Tricks for Ultra Lightweight OCR System论文地址PP-OCRv3: More Attempts for the Improvement of Ultra Lightweight OCR System论文地址PaddleOCR Github OCR工具库 43.5K个star PP-OCRv1由百度…

医院信息化与智能化系统(6)

医院信息化与智能化系统(6) 这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图,可以试试PlantUML,告诉GPT你的文件结构,让他给你对应的…

Java项目-基于springboot框架的疫苗接种管理系统项目实战(附源码+文档)

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…