总有一天你会需要做一次集群的滚动重启!
常见的原因:Elasticsearch 版本升级,或者服务器自身的一些维护操作(比如操作系统升级或者硬件相关)。不管哪种情况,都要有一种特别的方法来完成一次滚动重启。
正常情况下,Elasticsearch 希望你的数据被完全的复制和均衡的分布。如果你手动关闭了一个节点,集群会立刻发现节点的丢失并开始再平衡。
如果节点的维护是短期工作的话,这一点就很烦人了,因为大型分片的再平衡需要花费相当的时间(想想尝试复制 1TB 的数据——即便在内网也需要一段时间)

重启之前,首先通过以下命令查看集群状态。

curl http://8.8.8.8:9200/_cluster/health?pretty
ElasticSearch 2.x 5.x滚动重启_第1张图片

确保status为green和active_shards百分比为100%。

-------------------------------------------------------------------

1.正如上面提到的,集群如果发现了一个节点的下线,会马上进行分配均衡的动作,所以我们需要手动的暂时关闭分片自动均衡。命令如下:

curl -XPUT http://8.8.8.8:9200/_cluster/settings?pretty -d '
{
"transient" : {
        "cluster.routing.allocation.enable" : "none"
            }
}'

2.关闭一个节点
3.执行一个节点维护/升级
4.重启节点,确保已经加入到集群
5.使用如下命令重启启动分片分配

curl -XPUT http://8.8.8.8:9200/_cluster/settings?pretty -d '
{
    "transient" : {
        "cluster.routing.allocation.enable" : "all"
    }
}'

分片再平衡会花一些时间。一直等到集群变成 绿色 状态后再继续。

6.重复1-5步完成剩余的节点。