1、分片是什么?
简单来讲就是咱们在ES中所有数据的文件块,也是数据的最小单元块,整个ES集群的核心就是对所有分片的分布、索引、负载、路由等操作
分片可以是主分片(primary shard)或者是副本分片(replica shard)。
- number_of_shards
每个索引的主分片数,默认值是 5 。这个配置在索引创建后不能修改。 - number_of_replicas
每个主分片的副本数,默认值是 1 。对于活动的索引库,这个配置可以随时修改。
例子:如创建一个 blogs 的索引,五个主分片,一个副本分片
创建 IndexName 索引时候,在 Mapping 中可以如下设置分片 (curl)
PUT blogs
{
"settings": {
"number_of_shards":5,
"number_of_replicas": 1
}
}
注意
索引建立后,分片个数是不可以更改的
2、分片个数(数据节点计算)
分片个数是越多越好,还是越少越好了?根据整个索引的数据量来判断。
实列场景:
如果 blogs 所有数据文件大小是300G,改怎么定制方案了?(可以通过Head插件来查看)
建议:(仅参考)
1、每一个分片数据文件小于30GB - 50GB 之间
2、每一个索引中的一个分片对应一个节点
3、节点数大于等于分片数

本文深入探讨了Elasticsearch中的分片概念,包括主分片和副本分片,以及如何通过设置`number_of_shards`和`number_of_replicas`来管理分片数量。建议每个分片数据量保持在30GB-50GB之间,并根据数据量和增长趋势合理分配分片和节点。过度分片可能导致性能下降和资源浪费,应谨慎设定。此外,还介绍了不同类型的分片查询策略,如`_local`、`_primary`等,以优化查询效率。
最低0.47元/天 解锁文章
3728

被折叠的 条评论
为什么被折叠?



