有谁知道我该如何解决
错误:验证失败:1:此操作将添加 [2] 个分片,但该集群当前已打开 [3000]/[3000] 个最大正常分片
我知道elasticsearch建议一些默认解决方案,例如重新索引索引或删除prevues索引,但我有两个问题,一是我无法删除索引,因为elastic现在正在生产中并且数据很重要,第二个索引超过百万,其中一些是两个巨大的我无法计算重新索引完成和弹性可供最终用户使用需要多少时间当然我无法添加更多数据节点,因为弹性集群在三个独立的服务器上使用docker部署,所以如果我想添加更多节点我必须重新启动整个容器,所以这是不可能的。我正在寻找某种以最低成本解决我的问题的解决方案。我必须添加部署在电子商务网站上的弹性组件,其索引数超过数百万,这不是我的工作,只是我必须维护以提高弹性组件的性能
我无法添加更多数据节点,因为弹性集群是在三个独立的服务器上使用 docker 部署的,所以如果我想添加更多节点,我必须重新启动整个容器
我很好奇为什么您必须重新启动集群。 Elasticsearch 的全部目的是能够根据需要通过添加更多节点来水平扩展集群。
尽管如此,当您准备添加另一个节点时,您仍然可以增加每个节点允许的最大分片数的限制。
PUT _cluster/settings
{
"persistent": {
"cluster.max_shards_per_node": 3500
}
}
由于默认限制是 1000,而您已经达到 3000,这意味着有人已经提高了该限制一次。所以你应该小心。只需知道这会带来风险,因为每个分片都会消耗资源,因此向节点添加更多分片会给它们带来更大的压力,这就是为什么您应该真正考虑添加更多节点。