Elasticsearch 集群健康值红色终极解决方案

2022-11-07,,,,

文章转载自:

https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247483905&idx=1&sn=acaff63b10e0ad48ad32517950ace5cf&chksm=eaa82a29dddfa33f2a9c6046b5244bc81df61f45237c11028e20388ac7130a6ea1fa9f2b11f4&scene=21#wechat_redirect

1)、绿色——最健康的状态,代表所有的主分片和副本分片都可用;

2)、黄色——所有的主分片可用,但是部分副本分片不可用;

3)、红色——部分主分片不可用。(此时执行查询部分数据仍然可以查到,遇到这种情况,还是赶快解决比较好。)

方案一:极端情况——这个分片数据已经不可用,直接删除该分片。

ES中没有直接删除分片的接口,除非整个节点数据已不再使用,删除节点。

curl -XDELETE ‘localhost:9200/index_name/’

方案二:集群中节点数量>=集群中所有索引的最大副本数量 +1。

N> = R + 1

其中:

N——集群中节点的数目;

R——集群中所有索引的最大副本数目。

知识点:

当节点加入和离开集群时,主节点会自动重新分配分片,以确保分片的多个副本不会分配给同一个节点。

换句话说,主节点不会将主分片分配给与其副本相同的节点,也不会将同一分片的两个副本分配给同一个节点。
如果没有足够的节点相应地分配分片,则分片可能会处于未分配状态。
由于我的集群就一个节点,即N=1;所以R=0,才能满足公式。

问题就转嫁为:

1)添加节点处理,即N增大;

2)删除副本分片,即R置为0。

R置为0的方式,可以通过如下命令行实现:

curl -XPUT "http://localhost:9200/_settings" -d'
{ "number_of_replicas" : 0 } '

方案三:allocate重新分配分片。

如果方案二仍然未解决,可以考虑重新分配分片。

Elasticsearch 集群健康值红色终极解决方案的相关教程结束。

《Elasticsearch 集群健康值红色终极解决方案.doc》

下载本文的Word格式文档,以方便收藏与打印。