elasticsearch不停止服务,完成升级重启维护操作

当需要对集群进行顺序安全重启(不暂停业务操作和离线)的时候,把节点依次重启,本文就有可能对你有用。 原因可能有:Elasticsearch升级、操作系统升级或者硬件升级,不管什么原因,我们都需要对集群进行一次重启来完成升级操作; 从本质上讲,Elasticsearch希望你的数据是完整的和均衡的。如果关闭某个节点进行维护,集群将立即检测到该节点的脱离集群, 并开始重新分片数据平衡。这可能是毁灭性的,如果某个节点的维护是短期的,非常大数据的重新平衡可能需要一些时间 (就算是在快速网络条件下,复制1TB的数据,还是很耗费机器和网络资源)。

我们可以设置集群的平衡参数来暂时禁用掉平衡,具体步骤如下:

1.如果可能的话,先暂停掉数据新增和更新操作,这样会提高集群恢复的时间; 
2.禁用集群分片平衡操作,直到告诉集群可以恢复平衡操作为止,禁用配置方式:

PUT /_cluster/settings
{
    "transient" : {
        "cluster.routing.allocation.enable" : "none"
    }
}

注意:put操作的时候,如果不是在集群节点上,需要加上完成的路径,如: 
curl -XPUT http://192.168.1.2:9200/_cluster/settings -d’ 

“transient” : { 
“cluster.routing.allocation.enable” : “none” 

}’ 
3.关掉需要维护的节点; 
4.执行维护/升级; 
5.重启该节点,保证该节点顺利加入到集群中; 
6.重启平衡参数配置操作,修改配置方式:

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

注意:节点重启完成后,数据的平衡可能需要一段时间,需要等到到集群状态为绿色为止,在进行其他节点的操作; 
7.重复步骤2-6完成其他节点的维护操作; 
8.如果之前停掉了更新索引的操作,这个时候就可以恢复了。不过要等集群状态健康后,这样能是集群快速恢复健康;

posted @ 2018-08-08 19:15  十月围城小童鞋  阅读(189)  评论(0编辑  收藏  举报