前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次ES生产集群数据节点扩容的操作过程

记一次ES生产集群数据节点扩容的操作过程

原创
作者头像
南非骆驼说大数据
修改2020-12-19 21:52:33
5.7K0
修改2020-12-19 21:52:33
举报

一、前言--客户需求

客户自建ES集群,集群版本是6.8.1,由于生产需要将集群的3个节点进行升级配置。但是不能影响现有业务。

二、升级方案

正常情况下,Elasticsearch 希望用户的数据被完全的复制和均衡的分布。如果用户手动关闭了一个节点,集群会立刻发现节点丢失并开始集群分片的再平衡,就会出现节点间分片的均衡,这对于生产集群来说无疑是影响读写业务以及耗费集群资源的。由于本次节点升配时间不长,采用节点滚动升级的方式,升级一个节点完毕,等集群green再升级另外的第二个节点,以降低对业务的最大影响。因此,我们决定采用如下的方式进行集群的节点升级,步骤如下:

  1. 建议用户停止索引新的数据,这可以帮助提高集群的恢复速度。
  2. 阻止 Elasticsearch 再次平衡缺失的分片,因为大型分片的再平衡需要花费相当的时间,影响集群变更。<这点尤为重要>
代码语言:javascript
复制
PUT /_cluster/settings
{
    "transient" : {
        "cluster.routing.allocation.enable" : "none"      //取消分片权衡
    }
}

3. 关闭要升级的单个节点,步骤:停掉ES进程,然后关机,进行配置升级。

4. 执行节点维护/升级。

5. 重启节点,然后确认它加入到集群了。

6. 用如下命令重启分片分配:

代码语言:javascript
复制
PUT /_cluster/settings
{
    "transient" : {
        "cluster.routing.allocation.enable" : "all"       //恢复分片权衡
    } 
}

or

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

这个时候集群状态为“YELLOW”,大约数分钟后,集群Green.

7. 重复第 2 到 6 步操作剩余节点升级。每次节点操作完毕,集群都会有几分钟的Yellow。

8. 恢复业务索引写入。

9. 随后,按照客户的要求,将相关的业务索引,指定到升级配置的节点。使用如下:

代码语言:javascript
复制
PUT index_name/_settings
{
  "index.routing.allocation.include._ip": "10.124.105.5,10.124.105.6,10.124.105.7"
}
//include   表示OR的意思

三、总结

本次我们采用上面的方式给用户进行生产集群的节点升级。整个操作过程大概耗时在40分钟左右,调整了ES集群的节点配置,配置文件的变更等操作,顺利完成了客户的集群变更的保驾护航操作。滚动重启的方式适合于Elasticsearch 版本升级,或者服务器自身的一些维护操作(比如操作系统升级或者硬件相关)。希望大家可以借鉴一下。

当然,我们也考虑将节点exclude的方式进行滚动升级,比如如下API,但是这个API会在将节点下线前,将上面的分片全部挪到其它节点。时间比较长,故不予考虑。

代码语言:javascript
复制
PUT _cluster/settings
{
  "transient" : {
    "cluster.routing.allocation.exclude._ip" : "10.0.0.1"
  }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

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