ES 集群,有时候可能需要修改配置,增加硬盘,扩展内存等操作,需要对节点进行维护升级。但是业务不能停,如果直接kill 掉节点,可能导致数据丢失。而且集群会认为该节点挂掉了,就开始转移数据,当重启之后,它又会恢复数据,如果你当前的数据量已经很大了,这是很耗费机器和网络资源的。
本文转载官方提供的安全重启集群节点的方法:
第一步:先暂停集群的shard 自动均衡。
curl -XPUT http://localhost:9200/_cluster/settings -d'
{
"transient" : {
"cluster.routing.allocation.enable" : "none"
}
}'
第二步:shutdown你要升级的节点
curl -XPOST http://localhost:9200/_cluster/nodes/_local/_shutdown
Elasticsearch 2.3 版本中shutdown api 已经删除了,我们可以使用kill 方式shutdown。
第三步:升级重启该节点,并确认该节点重新加入到了集群中。
su - elas