Elasticsearch集群重启及滚动升级步骤和官网命令改进

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch集群重启及滚动升级步骤和官网命令改进相关的知识,希望对你有一定的参考价值。

参考技术A 参考: https://www.elastic.co/guide/en/elasticsearch/reference/current/restart-cluster.html

ES集群实际使用中,如果按照官网文档操作,在单个节点操作过程中,会出现分片重新分配的情况。本文对官网的步骤参数进行了修正,使用了transient和persistent结合的方式,不会引发分片重新分配。

发送TERM信号关闭进程

通过命令或者head界面查看。

命令:

如果集群未设置persistent的自动分配分片参数,则不要只使用persistent来关闭自动分配分片,在整个集群重启之前,不生效,会导致在单个节点关闭的情况下,分片迁移到其他节点。要同时设置transient,保证既在单个节点关闭的情况下,分片不会重新分配,也能保证集群重启后,分片不会重新分配。

可以看到,整个集群未关闭重启的情况下,某个节点的重启日志,cluster.routing.allocation.enable并未生效:

整个集群重启后,这个persistence才生效。

使用transient方式关闭分片自动分配即可。

节点重启后,分片仍会处于unsigned状态,开启分片自动分配后,unsigned的分片就会立刻在被重启的节点上生效。

elasticsearch集群安装插件滚动重启步骤

1.先安装好插件(每个节点都要装,root用户执行)

从github上下载对应版本的插件
https://github.com/medcl/elasticsearch-analysis-ik(release上有各版本的安装包,直接改下方下载链接中的版本号下载也行)
进入ES安装根目录执行

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.15.1/elasticsearch-analysis-ik-7.15.1.zip

./bin/elasticsearch-plugin install  file:///path/to/elasticsearch-analysis-ik-7.15.1.zip

查看已安装的插件

./bin/elasticsearch-plugin list 

2.禁用分片分配。这可以防止Elasticsearch重新平衡(reblance)丢失的分片,可以按如下方式禁用分配

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

3.为了提升集群恢复速度,尽可能先让数据刷盘.如果有任何挂起(pending状态)的索引操作,这个操作将会失败,但可以安全地多次重新执行.如果应用有数据写入最好先暂时停止数据写入

POST /_flush/synced

4.重启节点确认是否已经加入集群

GET _cat/nodes

5.重新启用分片分配,分片再平衡可能需要一些时间。等待群集恢复到green状态后再继续,操作如下

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

6.查看集群状态直到green

GET _cluster/health

7.重复2~4步,直到全部节点重启完成,等待集群回复到green,恢复业务写入

以上是关于Elasticsearch集群重启及滚动升级步骤和官网命令改进的主要内容,如果未能解决你的问题,请参考以下文章

ES 集群滚动升级

Elasticsearch 学习之不停止服务,完成升级重启维护操作

centos7.5系统elasticsearch使用滚动和全新安装升级到最新的elasticsearch7.4.2版本

elasticsearch安全重启节点

hbase集群滚动重启Rolling Restart

Elasticsearch集群运维