ElasticSearch--解决集群健康状态是Red、Yellow的问题

原文网址:ElasticSearch--解决集群健康状态是Red、Yellow的问题_IT利刃出鞘的博客-CSDN博客

简介

说明

本文介绍如何修复ES的非健康状态(黄色或者红色)。

相关网址

ElasticSearch--排查集群健康状态是Red、Yellow的问题_IT利刃出鞘的博客-CSDN博客

分片变得未分配的原因有很多种。下文概述了最常见的原因及其解决方案。

1. 重新启用分片分配

节点重启过或者设置过禁用分片分配,但之后忘记设置重新分配策略,Elasticsearch 将无法分配分片。

需要手动更新集群设置才可以实现重新分配。

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

2. 调整节点下线时分片分配策略

当数据节点下线或特定原因宕机导致离开集群时,分片通常会变成未分配状态。造成这种情况的原因很多,比如:连接问题;比如:硬件故障问题等。

当这些故障解决后,下线节点重新加入集群,然后Elasaticsearch 将自动分配之前因节点下线等原因导致的未分配的分片。

为了避免在上述问题上浪费资源,Elasticsearch 默认将分配延迟一分钟。根据业务实际需要,比如:因升级内存而下线数据节点的场景,可以将该延时值调大。

参考命令行:

PUT _all/_settings
{
  "settings": {
    "index.unassigned.node_left.delayed_timeout": "5m"
  }
}

如果已恢复节点并且不想等待延迟期,则可以调用不带参数的集群 reroute API 来启动分配过程。该进程在后台异步运行。

POST _cluster/reroute

3. 减少副本数量

为了防止硬件故障,Elasticsearch 不会将副本分配给与其主分片相同的节点。

如果只有一个ES节点,没有其他数据节点可用于分配副本分片,则该副本分片保持未分配状态。要解决此问题,你可以:

  • 添加相同角色的数据节点。
  • 通过更新 index.number_of_replicas 索引设置减少每个主分片的副本数。

如下是集群层面的设置,将副本数设置为0,设置后对整个集群生效。

PUT _settings
{
  "index.number_of_replicas": 0
}

结果

​PS:为了保证集群线上业务的高可用性,建议每个主节点至少保留一个副本。 

4. 释放或增加磁盘空间

上边是部分内容,为便于维护,本文已迁移到此地址:ES-解决集群健康状态是Red、Yellow的问题 - 自学精灵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT利刃出鞘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值