0

我定期使用另一篇删除所有副本的帖子中的 curl 命令解决未分配的副本消息:ElasticSearch:未分配的碎片,如何修复?

curl -XPUT localhost:9200/_settings -d '{ "number_of_replicas" :0 }'

我已经运行 curl 命令来配置自动分配,但它没有解决。

curl -XPUT 'localhost:9200/_cluster/settings' -d '{ "transient" : { "cluster.routing.allocation.enable" : "all" } }'

  • 为什么我的单节点 AWS-AMI Graylog 2.0 服务器生成副本而不分配它们?
  • 为什么配置它的 curl 命令不适用?
4

1 回答 1

0

为什么我的单节点 AWS-AMI Graylog 2.0 服务器生成副本而不分配它们?

Elasticsearch 索引默认只有一个副本。但是,您不能分配只有一个节点的分片副本。

如果可以,那么副本将在同一台机器上并加倍使用相同的内存,两次。这根本不是你想要的,所以它根本不分配。

我如何最好地应对不需要定期清除副本的情况?

一般的方法是:

  • 在创建索引的任何位置修改应用程序设置以更改它使用的副本数。并非所有应用程序都提供执行此操作的设置,这完全取决于它们的设置。
  • 更改任何现有模板以不期望副本。
    • 这意味着模板不会被放置它的系统替换(同样,取决于系统)。
  • 创建一个默认副本数为 的全局模板0

在模板的情况下,第二个和第三个选项之间的区别在于它的全局性template

{
  "template" : "*",
  "settings" : {
    "number_of_replicas" : 0
  }
}

注意:您不应该设置全局映射,但全局设置非常好。

于 2016-06-29T19:30:13.883 回答