elasticsearch - Elasticsearch未分配的碎片:如何重新分配?

标签 elasticsearch

我们有3个数据节点群集,所有索引的每个索引上都有1个主节点+ 2个副本分片。直到几天前,群集的所有索引均以绿色状态正常运行。
由于某种原因,现在只有一个索引具有黄色状态,并且有1个未分配的索引错误。当我运行_cluster/allocation/explain时,它告诉我“无法将分片分配给已经存在该分片副本的同一节点”。如果我查看Kibana上的集群运行状况,则看不到该节点上的重复分片。
enter image description here
所以我不太确定问题出在哪里。有人可以提供任何建议吗?

最佳答案

这个说法是正确的。the shard cannot be allocated to the same node on which a copy of the shard already exists,因为在存在索引主分片(P)的同一节点上分配副本(R)没有意义,所以 s副本用于提供高可用性和容错能力,并且始终进行分配到没有副本主分片的节点。
现在以您的情况为例,您提到您有3个数据节点,并且所有索引还具有3个分片(1 P + 2R),这使得在每个数据节点上分配1个分片(无论是P还是R分片)非常理想。
同样,您是正确的cluster health on Kibana, I don't see a duplicate shard on that node.,并且P或R不能在同一节点上也不会发生。
由于您已经使用了_cluster/allocation/explain,所以我假设您已经知道有问题的索引,因此只需遵循discuss post中提到的建议,简而言之,将有问题的索引的副本数减少为1或增加数据节点。

关于elasticsearch - Elasticsearch未分配的碎片:如何重新分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63253621/

相关文章:

spring - createIndex = true不会在Elasticsearch中创建索引映射

elasticsearch - Elasticsearch按查询更新

scala - Flink ES连接未按预期进行编译

java - 通过 TransportClient 在 java 中使用 Elasticsearch

elasticsearch - Elasticsearch嵌套类型选择查询

elasticsearch - elasticsearch n-gram示例澄清

elasticsearch - Elasticsearch查询关键字值大于X [7.2]的所有文档

elasticsearch - kafka-connect接收器中的ExtractField和Parse JSON

php - 在ElasticSearch中搜索

elasticsearch - 如何使用Scroll API elasticsearch滚动数据