如何防止新索引的分片仅在 Elasticsearch 中的少数节点上分配?

How to prevent shards of new index from assigning on only a few nodes in Elasticsearch?

我的索引有 10 个主分片 + 1 个副本 = 总共 20 个分片

创建新的每日索引时,分片往往只分配给少数具有足够容量的节点。

发生被拒绝的操作,因为这些节点接收每个传入请求。

我想防止分片只集中在少数几个节点上。 (包括通过重新定位现有分片来重新定位磁盘)

是否还有任何 API 可以跨现有索引分布分片?

您的集群中似乎存在一些严重问题,未在您的集群上均匀分配分片,这可能会导致严重问题,例如

  1. 不平衡的节点,由于分片分布不均匀
  2. 加载的节点很少,可能会出现故障并导致数据丢失
  3. 性能问题
  4. 集群中拒绝的请求

我猜您已经找到或接近找到问题的根本原因,即某些节点具有高磁盘水印,这将阻止在这些节点上分配新分片,我写了一个detailed explanation on what is disk watermark issue and how to solve it

现在回答您的问题,关于任何 API 来传播分片,好消息是,它可用并称为 cluster re-route API,您应该使用它在集群中均匀地传播分片.