elasticsearch集群,有时候可能需要修改配置,增加硬盘,扩展内存等操作,需要对节点进行维护升级。但是业务不能停,如果直接kill掉节点,可能导致数据丢失。而且集群会认为该节点挂掉了,就开始转移数据,当重启之后,它又会恢复数据,如果你当前的数据量已经很大了,这是很耗费机器和网络资源的。
官方提供的安全重启方法如下:
关闭集群的shard均衡curl -XPUT http://192.168.1.2:9200/_cluster/settings -d'{"transient" : { "cluster.routing.allocation.enable" : "none" }}'停止服务--此处需要注意一下:如果url使用的是_local,前面的ip一定是你要停的那台机器的IPcurl -XPOST http://192.168.1.3:9200/_cluster/nodes/_local/_shutdown---进行相关操作---启动服务./elasticsearch -d启动集群的shard均衡curl -XPUT http://192.168.1.2/_cluster/settings -d'{ "transient" : { "cluster.routing.allocation.enable" : "all" }}'
到此整个集群安全升级并且重启结束。