elasticsearch集群关闭和重启

有时候我们需要重启elasticsearch集群,而集群如果感知到某个节点关闭,将延迟一分钟后开始将该节点上的分片复制到集群中的其他节点,显然我们是人为可预期的关闭,不希望进行分片的迁移。

  1. 禁止分片重分布

cluster.routing.allocation.enable用于启用或禁用特定种类的分片的分配

  • all - (默认值)允许为所有类型的分片分配分片。
  • primaries - 仅允许分配主分片的分片。
  • new_primaries - 仅允许为新索引的主分片分配分片。
  • none - 任何索引都不允许任何类型的分片。

将这个值设置为primaries ,防止集群将副本分片重新分配为主分片

curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
  "persistent": {
    "cluster.routing.allocation.enable": "primaries"
  }
}
'

2.执行同步刷新

curl -X POST "localhost:9200/_flush/synced?pretty"

这是将索引缓存刷新到文件中的操作,执行同步刷新时,请检查响应以确保没有失败。尽管请求本身仍返回200 OK状态,但在响应正文中列出了由于挂起索引操作而失败的同步刷新操作。

3.关闭所有节点

sudo systemctl stop elasticsearch.service

4.挨个启动节点

5.查看集群状态

curl -X GET "localhost:9200/_cat/health?pretty"
curl -X GET "localhost:9200/_cat/nodes?pretty"


上一篇:用于物联网设备的Linux发行版


下一篇:nginx限流方案