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

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

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

1. 关闭ES集群

1.1. 禁止分片自动分布

curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
    "persistent" : {
        "cluster.routing.allocation.enable" : "none"
    },    
    "transient" : {
        "cluster.routing.allocation.enable" : "none"
    }
}
'

1.2. 执行同步刷新

curl -X POST "localhost:9200/_flush/synced"

1.3. 关闭各节点

发送TERM信号关闭进程

kill <pid>

2. 启动ES集群

2.1. 依次启动

nohup /opt/elasticsearch/bin/elasticsearch >> /dev/null 2>&1 &

2.2. 查看集群状态是否正常(green)

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

命令:

curl -XGET "http://localhost:9200/_cat/health"
curl -XGET "http://localhost:9200/_cat/nodes"

2.3. 启用分片自动分布

    curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
    {
        "persistent" : {
            "cluster.routing.allocation.enable" : "none"
        },    
        "transient" : {
            "cluster.routing.allocation.enable" : "all"
        }
    }
    '

2.4. 查看集群状态和分片情况

curl -XGET "http://localhost:9200/_cat/health"
curl -XGET "http://localhost:9200/_cat/recovery"

3. 错误操作

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

curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
    "persistent" : {
        "cluster.routing.allocation.enable" : "none"
    }
}
'

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

[2020-09-07T01:21:44,679][INFO ][o.e.c.s.ClusterSettings  ] [es-node-3] updating [cluster.routing.allocation.enable] from [ALL] to [all]
[2020-09-07T01:21:44,679][INFO ][o.e.c.s.ClusterSettings  ] [es-node-3] updating [cluster.routing.rebalance.enable] from [ALL] to [none]

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

[2020-09-07T01:35:30,610][INFO ][o.e.c.s.ClusterSettings  ] [es-node-3] updating [cluster.routing.allocation.enable] from [ALL] to [none]

5. 滚动升级或者单个节点维护

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

curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
    "persistent" : {
    },    
    "transient" : {
        "cluster.routing.allocation.enable" : "none"
    }
}
'

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353