Elasticsearch 搜索服务器全集群升级版本并重启

Elasticsearch 搜索服务器需要一个完整的集群重启,主要版本升级是从0.X至1.x或从1.x的2.x版本到滚动升级不能超过该界限版本的支持。

这个过程要一个完整的集群重启进行升级,如下所示:

步骤1:关闭分片自动分配

当您关闭一个节点,配置过程会立即尝试复制将原本节点集群中的其他节点上的分片,造成I / O的大量浪费。可以通过关闭一个节点之前禁用分配来避免:

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

如果从0.90.x升级到1.x中,使用这种上述设置:是不行的,而是如下:

PUT   /_cluster/settings
{
    "persistent"  : {
      "cluster.routing.allocation.disable_allocation"    true  ,
      "cluster.routing.allocation.enable"    "none"
    }
}

 

步骤2:执行同步刷新,把内存里的数据刷到硬盘

POST   /_flush/synced

 

步骤3:关闭旧集群,配置新集群

停止集群中的所有节点上的所有Elasticsearch服务,每个节点都可以按照所描述的相同的程序进行升级。

 

步骤4:启动集群,使用API来检查所有节点成功加入群集

GET _cat  /health
GET _cat  /nodes

 

步骤5:等待集群状态变成黄色

一旦每个节点已恢复了当地的一旦每个节点已恢复了当地的分片时,状态会变成 黄色,这意味着所有主要分片已被追回,但不是所有的副本分片进行分配,这是可以预料的因为分配仍然被禁用。时,状态会变成 黄色,这意味着所有主要分片已被追回,但不是所有的副本分片进行分配。这是可以预料的,因为分配仍然被禁用。

 

步骤6:重新启用分配

延迟副本的分配直到所有的节点都加入集群之后允许主副本分配给已经具备局部分片副本节点上,重新启用分片分配:

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

如果从0.90.x升级到1.x中,使用这种上述设置:是不行的,而是如下:

PUT   /_cluster/settings
{
    "persistent"  : {
      "cluster.routing.allocation.disable_allocation"    false  ,
      "cluster.routing.allocation.enable"    "all"
    }
}

现在开始群集分配副本分片的所有数据节点是安全的已恢复索引和搜索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值