Elasticsearch 7.5.2 集群默认只为索引创建一个分片
Posted
技术标签:
【中文标题】Elasticsearch 7.5.2 集群默认只为索引创建一个分片【英文标题】:Elasticsearch 7.5.2 cluster is creating only one shard for an index by default 【发布时间】:2020-03-30 10:58:33 【问题描述】:我有一个新设置的 Elasticsearch 7.5.2 集群。当我创建索引时,默认只创建一个分片。
我的集群策略如下:
Total Nodes: 5
--------------
Node 1 & Node 2 - Master Only
Node 3 - Master & Data Node
Node 4 & Node 5 - Data Only
找不到任何限制分片创建索引的集群设置。 是集群策略的问题还是我在这里缺少任何设置?
请帮我找出问题。
【问题讨论】:
【参考方案1】:早期 Elasticsearch 的默认主分片数为 5,这与您使用的 Elasticsearch 7.X 不同,因此您只能看到 1 个主分片。
Elasticsearch link 了解此更改以及有关this SO 答案的更多信息。
除了适用于特定索引的 API(@Kamal 已经提到)之外,您可以在您的 elasticsearch.yml
中指定此设置,这将对创建的每个索引有效,直到您使用 API 调用覆盖。
配置添加到您的elasticsearch.yml
index.number_of_shards: your desired number of shards
注意:这是针对不能动态更改的主分片,因此请谨慎设置,与可以动态更改的the number of replicas
不同。
【讨论】:
【参考方案2】:没错。发布版本 7,Elasticsearch 默认创建分片大小为 1 的索引,如上所述 here
在创建索引时,您始终可以使用以下设置指定索引分片。
PUT <your_index_name>
"settings" :
"index" :
"number_of_shards" : 5
希望这会有所帮助!
【讨论】:
以上是关于Elasticsearch 7.5.2 集群默认只为索引创建一个分片的主要内容,如果未能解决你的问题,请参考以下文章
ELKStack 实战之 Elasticsearch集群 [二]