停止切割服务
使用Kibana Dev Tools
- 打开Kibana,导航到Dev Tools页面。
- 在Console标签页中,执行以下命令来临时禁止分片的自动分配
Json
1PUT _cluster/settings
2{
3 "transient": {
4 "cluster.routing.allocation.enable": "none"
5 }
6}
这段命令将集群设置中的cluster.routing.allocation.enable
设置为none
,这意味着Elasticsearch将停止所有分片的分配操作,无论是初次分配、重分配还是副本分配。
使用curl命令
如果你更倾向于使用命令行,可以通过curl命令来达到同样的效果:
Bash
1curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
2{
3 "transient": {
4 "cluster.routing.allocation.enable": "none"
5 }
6}
7'
停止es集群
启动es集群
启动分片自动分配
重新启用分片分配
当维护操作完成,想要重新启用分片分配时,可以执行以下命令:
通过Kibana Dev Tools
Json
1PUT _cluster/settings
2{
3 "transient": {
4 "cluster.routing.allocation.enable": "all"
5 }
6}
使用curl命令
Bash
1curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
2{
3 "transient": {
4 "cluster.routing.allocation.enable": "all"
5 }
6}
7'
这些设置是临时 的(由transient
关键字指定),意味着重启Elasticsearch后会恢复到默认配置。如果需要永久更改,应使用persistent
代替transient
。但在大多数情况下,临时禁用分片分配足够应对维护操作的需求。