前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch 7.16 强势升级至 8.13.4,引爆数据革命新纪元!

Elasticsearch 7.16 强势升级至 8.13.4,引爆数据革命新纪元!

作者头像
DBA实战
发布2024-09-06 19:09:38
1390
发布2024-09-06 19:09:38
举报
文章被收录于专栏:DBA实战

简介

Elasticsearch是一个强大的搜索和分析引擎,随着新版本的发布,升级是保持系统性能和安全性的关键。将Elasticsearch从7.16升级到8.13.4是一个复杂且关键的过程,涉及多方面的准备和实施步骤。

准备工作

  • 备份数据

在进行任何升级操作之前,务必对现有的 Elasticsearch 数据进行全量备份。可以使用 Elasticsearch 的 Snapshot 功能或其他备份工具进行备份。

代码语言:javascript
复制
PUT /_snapshot/my_backup
{
  "type": "fs",
  "settings": {
    "location": "/mount/backups/my_backup"
  }
}
  • 验证插件和依赖项

确保所有使用的插件和依赖项在新版本中仍然兼容和可用。有些插件可能需要升级到与 Elasticsearch 8.x 兼容的版本。

  • 检查系统要求

确保新版本的 Elasticsearch 符合所需的 Java 版本和操作系统要求。

升级步骤

  • 升级到 7.17

升级到 7.17 是必要的步骤,因为它允许您使用升级助手来识别和解决问题,重新索引 7.0 之前创建的索引,并进行滚动升级。

1.禁用分片重新分配

代码语言:javascript
复制
PUT /_cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.enable": "none"
  }
}

2.停止 Elasticsearch 服务

在升级节点之前,停止 Elasticsearch 服务。

3.备份当前节点的数据

在升级节点之前,备份当前节点的数据和配置文件,以防万一。

4.逐个节点升级

  • 关闭节点
  • 安装新版本
代码语言:javascript
复制
###分词器
https://github.com/infinilabs/analysis-ik/archive/refs/tags/v7.17.18.zip
##kibana
wget https://github.com/elastic/kibana/archive/refs/tags/v7.17.20.tar.gz
###ES
wget https://github.com/elastic/elasticsearch/archive/refs/tags/v7.17.20.tar.gz
tar -zxvf elasticsearch-7.17.20-linux-x86_64.tar.gz
cd elasticsearch-7.17.20/
将旧版本的配置文件 (elasticsearch.yml) 中的设置迁移到新的配置文件中。确保所有配置项在新版本中仍然有效。
  • 启动节点
代码语言:javascript
复制
./bin/elasticsearch
确认节点已加入集群并状态为 green
GET /_cat/nodes?v
检查集群健康状态:
确保集群健康状态为绿色。
GET /_cluster/health
重复以上步骤:
逐个节点进行升级,直到集群中的所有节点都完成升级。

5.重新启用分片重新分配

代码语言:javascript
复制
PUT /_cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.enable": null
  }
}

6.使用升级助手准备升级到 Elasticsearch 8.13.4

代码语言:javascript
复制
安装升级助手:
在 Elasticsearch 7.17 中安装 Upgrade Assistant 插件。
bin/elasticsearch-plugin install analysis-icu
# 在 Kibana 中找到升级助手
Management > Elasticsearch > Upgrade Assistant

运行升级助手:
使用 Upgrade Assistant 插件来识别和解决升级前的问题。升级助手将检测到的问题报告为警告或错误,并指导您如何解决它们。

在浏览器中访问升级助手的 URL,并按照提示进行操作。
http://localhost:5601/app/upgrade_assistant

解决问题:
在运行升级之前,确保解决所有的严重问题和警告。
  • 升级到 Elasticsearch 8.13.4

将集群从 7.17 升级到 8.x:

  • 下载并安装 8.x 版本的 Elasticsearch
代码语言:javascript
复制
###kibaba
wget https://github.com/elastic/kibana/archive/refs/tags/v8.13.4.tar.gz
##分析器
wget https://github.com/infinilabs/analysis-ik/archive/refs/tags/Latest.tar.gz
##ES
wget https://github.com/elastic/elasticsearch/archive/refs/tags/v8.13.4.tar.gz
  • 逐个节点进行滚动升级,步骤同上。

替代方案:创建新集群并重新索引

如果滚动升级的停机时间和风险不可接受,可以考虑创建一个新的 Elasticsearch 8.x 集群,然后将数据从旧集群重新索引到新集群。这种方法可以避免对现有集群进行大规模变动。

  • 创建新集群

在新环境中部署一个 8.x 版本的 Elasticsearch 集群。

  • 从远程重新索引

使用 _reindex API 从旧集群中重新索引数据到新集群:

代码语言:javascript
复制
POST /_reindex
{
  "source": {
    "remote": {
      "host": "http://old-cluster:9200"
    },
    "index": "old_index"
  },
  "dest": {
    "index": "new_index"
  }
}

注意事项

插件和定制脚本:

确保所有使用的插件和自定义脚本在新版本中仍然有效。有些插件可能需要更新到与 Elasticsearch 8.x 兼容的版本,例如Ik、kibana。

Java 版本:

确保安装的 Java 版本符合 Elasticsearch 8.x 的要求。

配置文件变更:

新版本的 Elasticsearch 可能会有一些配置文件的变更,如集群名称、节点设置等。确保更新配置文件以适应新版本的要求。

安全设置:

Elasticsearch 8.x 可能会增强安全功能,如角色、权限管理等。确保在升级后重新配置和设置安全相关的参数。

性能监控:

升级后,密切关注集群的性能和健康状态。确保在升级过程中没有引入性能问题或其他异常情况。

REST API 兼容性:

8.x 版本支持 REST API 的兼容模式,但不保证与 7.x 版本相同的行为。建议尽快将所有请求升级到新版本的语法和功能。

结论

升级 Elasticsearch 是一个复杂的任务,需要详细的准备工作和逐步执行的升级步骤。通过升级到 7.17,再到 8.13.4,您可以利用升级助手来识别和解决问题,确保顺利完成升级并保持集群的高可用性和稳定性。在升级之前,请务必详细阅读官方文档并进行全面的测试,以确保升级过程安全可靠

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA实战 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档