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

2024-01-09 22:44

本文主要是介绍ElasticSearch集群升级方案(7.6到7.17),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:鱼仔

博客首页: 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}
}

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

这篇关于ElasticSearch集群升级方案(7.6到7.17)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

升级至三频BE12000! 华硕ROG魔盒Pro路由器首发拆解评测

《升级至三频BE12000!华硕ROG魔盒Pro路由器首发拆解评测》华硕前两天推出新一代电竞无线路由器——ROG魔盒Pro(StrixGR7Pro),该产品在无线规格、硬件配置及功能设计上实现全... 作为路由器行业的T1梯队厂商,华硕近期发布了新旗舰华硕ROG魔盒Pro,除了保留DIY属性以外,高达120

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/