【问题标题】:Partial query results due to Elasticsearch cluster health yellow由于 Elasticsearch 集群运行状况黄色导致的部分查询结果
【发布时间】:2020-03-09 14:41:01
【问题描述】:
我的 elasticsearch 集群健康状态是黄色。
这是否意味着我可能会得到部分结果?
我正在使用亚马逊弹性实例,集群运行状况选项卡上的摘要如下所示...
Number of nodes
1
Number of data nodes
1
Active primary shards
206
Active shards
206
Unassigned shards
205
我想知道如何将状态从黄色变为绿色
【问题讨论】:
标签:
elasticsearch
health-monitoring
【解决方案1】:
集群健康黄色表示一个或多个副本分片未分配,并且elasticsearch查询会转到主分片或副本分片以获取搜索结果。
根据this ES doc 了解有关各种健康状况的更多信息。
集群健康状态为:绿色、黄色或红色。在碎片上
级别,红色状态表示特定分片未分配
在集群中,黄色表示主分片已分配,但
副本不是,绿色表示所有分片都已分配。
在这种情况下,对于某些索引,它们的副本未分配给任何数据节点,Elasticsearch 必须查询所有主分片,您不会得到部分结果,但搜索结果的性能会受到影响,因为副本分片用于提高搜索性能和高可用性
有关副本如何改善搜索延迟的更多信息,请参阅tune search performance article of ebay 部分。
问:- 关于第二个问题,关于如何将状态从黄色更改为绿色。
答案:您需要弄清楚为什么没有分配有问题的索引副本的原因,是因为 Elasticsearch 没有在分配其主分片的同一节点上分配副本,因此数据节点较少,还是这些索引的副本比数据节点多。
在这些情况下,您可以增加数据节点或减少副本节点的数量(可以动态完成。
【解决方案2】:
如果您想保留副本分片,请尝试增加节点。您的副本分片仍未分配,因此您获得 [黄色] 集群状态。
您也可以减少副本分片的数量,但这会影响搜索性能。