ElasticSearch 升级指导

ES通常可以通过滚动升级来避免服务中断。一般情况下小版本升级,和相邻主版本的升级可以通过滚动升级来完成,具体情况需参照官方文档的升级指导。

使用滚动升级的方式升级集群,若进行跨越大版本的升级,可能需要重新索引在旧版本中创建的索引,有时也许需要进行多次滚动升级和重建索引才能升级到我们需要的目标版本。

除了滚动升级,我们还可以使用“集群停机升级”和“跨级群重建索引”的方式直接进行ES跨版本的升级。

升级ES版本,需要同时升级ES相关的官方组件,可以使用官方提供的“交互式升级指南”获得可供参考的升级方案。

交互式升级指南:https://www.elastic.co/cn/upgrade_guide

升级前的工作:

  • 查看新版本ES的重要变更,了解对我们应用程序的影响;
  • 查看废弃的功能列表,检查我们是否使用了不推荐使用的功能;
  • 如果使用了自定义插件,需要确保在插件兼容新版本;
  • 在升级生产集群之前,在测试环境先进行测试验证;
  • 升级之前备份数据。集群升级后集群内的数据格式会发生变化,无法回退到之前的版本。如果需要回退到之前的集群版本,需要使用备份数据恢复。

升级方式:

下表显示了何时可以执行滚动升级,何时需要重新索引或删除旧索引以及何时需要完全重启群集。

补充:升级到7.8(当前最新稳定版本),官方文档给出的建议都是通过一次或多次滚动升级的方式进行升级。

ES不同版本间索引的兼容性:

ES主要版本发布顺序为 1.x,2.x, 5.x, 6.x, 7.x 。

高版本ES可以兼容读取上一个主版本ES中创建的索引。更早版本(跨主版本)ES中创建的索引需要

在升级前进行重建索引或删除。例如:ES 6.x可以使用在 ES 5.x中创建的索引,但不能使用在 ES 2.x 或更在版本中创建的索引。ES 5.x 可以使用在 ES 2.x 中创建的索引,但不能使用在 1.x 或更早版本中创建的索引。

这也适用于使用快照和还原备份的索引。如果索引最初是在2.x中创建的,则即使快照是由5.x群集创建的,也无法将其还原到6.x群集。

如果存在不兼容的索引,Elasticsearch节点将无法启动。

ES升级举例:

升级 5.3 到6.8,有3种升级方式:

  • 滚动升级:先滚动升级到 5.6,再滚动升级到 6.8;
  • 停机升级:集群停机升级,先关闭5.3的所有实例,升级所有5.3实例到6.8,重启集群,恢复数据。
  • 重建索引升级:创建一个新的 6.8 集群,使用“远程重建索引”直接将 5.3 的数据导入 6.8集群。

要升级运行2.x的Elasticsearch集群,有2种方式:

  • 使用集群停机升级的方式升级到5.6,重新索引2.x中创建的索引为5.6索引格式,滚动升级到6.x。如果您的Elasticsearch 2.x集群包含在2.x之前创建的索引,则在升级到5.6之前必须删除它们或使用reindex将索引格式改为2.x中的格式。
  • 创建一个新的6.x群集,使用reindex直接从2.x群集导入索引到6.x集群。

要升级Elasticsearch 1.x集群,有2种方式:

  • 执行集群停机升级到Elasticsearch 2.4.x,然后重新索引或删除1.x索引。然后,执行集群停机升级到5.6,然后重新索引或删除2.x索引。最后,执行滚动升级到6.x。
  • 创建一个新的6.x群集,使用reindex直接从1.x群集导入索引到6.x集群。

小结:

在有保留数据需求的情况下有三种升级方式:

1.集群停机升级,需停止服务;

2.滚动升级,无须停服务,但可能需要执行多次重建索引(集群内reindex)和滚动升级;

3.新建集群安装高版本ES服务,使用 reindex 直接将低版本集群的数据导入新建集群。这种方式可以直接执行跨越多个版本的集群升级,但需要考虑新建集群的服务器资源、数据跨集群reindex对网络带宽的需求和数据迁移的时间等问题。

前两种升级方式为原地升级,最后一种升级方式为新建集群,进行数据迁移。具体采用哪种方式升级还需考虑硬件资源、索引数据量、对服务连续性的影响等因素。

最后,ES版本更新迭代非常迅速,在增加新功能特性的同时也废弃了很多特性,最大的变化莫过于6.0版本移除了索引对多type的支持,在升级ES集群的同时请进行必要的应用改造以适配更新后的ES。

参考:

https://www.elastic.co/guide/en/elasticsearch/reference/6.8/setup-upgrade.html

https://www.elastic.co/guide/en/elasticsearch/reference/7.8/setup-upgrade.html#setup-upgrade

https://www.elastic.co/guide/en/elasticsearch/reference/7.8/setup-upgrade.html#setup-upgrade

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Elasticsearch是一个开源的分布式搜索和分析引擎,用于处理大规模数据集并提供实时的搜索和分析功能。升级Elasticsearch版本是一个常见的需求,升级到较新的版本可以获得更多的功能改进和性能提升。 将Elasticsearch 6升级到7需要考虑以下几个方面: 1. 验证兼容性:在进行升级之前,需要确保应用程序和插件与新版本Elasticsearch兼容。查阅Elasticsearch的官方文档,了解新版本的变化和已知的不兼容性,以便进行相应的调整。 2. 备份数据:在进行升级之前,务必对现有的Elasticsearch数据进行备份。这样可以在出现问题时可以恢复到之前的状态。 3. 依赖项更新:升级到较新的Elasticsearch版本会导致某些插件或扩展的不兼容性。因此,在进行升级之前,需要查看所有已安装的插件和扩展,并确保它们能够与新版本Elasticsearch兼容。如果有不兼容的插件,需要考虑升级插件或找到替代方案。 4. 系统要求:Elasticsearch 7对硬件和操作系统的要求可能与之前的版本有所不同。检查新版本的系统要求,并确保服务器环境符合要求。 5. 测试升级:在正式环境之前,建议在一个测试环境中进行升级。这样可以测试升级过程中的问题,并确保应用程序在新版本下的正常运行。 6. 升级过程:升级Elasticsearch的过程涉及停止现有集群、备份数据、安装新版本并重新配置集群。使用Elasticsearch提供的升级文档指南,按照步骤执行升级过程。 7. 验证和优化:升级完成后,对新版本Elasticsearch进行验证和优化。确保集群健康,并评估新功能的性能和效果。 总结而言,升级Elasticsearch是一个涉及多方面的过程,需要小心谨慎地进行。在升级之前做好准备工作,并遵循官方文档的指导,可以确保顺利升级并获得新版本的好处。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值