【问题标题】:How to add additional primary shards to Elasticsearch cluster?如何向 Elasticsearch 集群添加额外的主分片?
【发布时间】:2015-05-12 16:17:22
【问题描述】:

我有一个包含 7 个节点的集群,我最近注意到我们只使用 5 个主分片,这意味着每个索引 - 我们只使用 7 个节点中的 5 个。 我想为新创建的索引添加两个额外的主分片。

我已将以下内容添加到 elasticsearch.yml 并重新启动集群:

index.number_of_shards: 7 index.number_of_replicas: 0

但是,从那以后已经有几天了,还有一些新的索引 - 我仍然看到它被分成 5 块.. 谁能解释为什么?我在这里缺少一些额外的配置吗?

谢谢!

【问题讨论】:

    标签: elasticsearch sharding


    【解决方案1】:

    您必须重新索引受影响的索引。正如我想象的那样,集群中只有 1 个索引。现有索引中的分片数不能自动更改。

    This relative question 可能会有所帮助,this question 如果您不想要任何停机时间,它可以使用别名和基本上 2 个索引 - 重新分片前 1 个和之后 1 个,然后您切换别名以指向您想要的任何索引

    【讨论】:

    • 伙计们 - 感谢 cmets,但我认为您误会了,我每天午夜都会创建新索引,我只是希望使用更多分片创建新索引。旧指数最终将逐步淘汰。这可能吗?
    • @user3352229 您可以在更改分片号之前和之后发布GET /yourdailyindices/_settings 的索引吗?
    • 这里是我更改设置并重新启动集群后创建的索引的设置: { "2015-05-12" : { "settings" : { "index" : { "creation_date ":"1431388790550","uuid":"H5bzXRekT0WDni2BEDJsfA","number_of_replicas":"0","number_of_shards":"5","version":{"created":"1040499"}}}}}}
    • 它仍在创建默认值为 5 个主分片的索引,看起来它忽略了 elasticsearch.yml 中 index.number_of_shards 的设置:7
    • @user3352229 修改 elasticsearch.yml 后是否重启了节点?我发现在您的情况下使用templates 更有用,更改设置更容易,您不必弄乱 elasticsearch.yml
    【解决方案2】:

    如果不创建新索引并重新索引所有数据,则无法添加主分片。

    您可以添加副本,但不能在不重新索引的情况下添加主副本。对于零停机时间的重新索引方案,请查看this link

    【讨论】:

      猜你喜欢
      • 2023-02-09
      • 1970-01-01
      • 2016-06-13
      • 2014-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多