有人能告诉我如何为 Elasticsearch 索引选择分片和副本的数量吗?
我已将索引的大小配置为 20GB,但不知道如何选择数量或分片和副本
注意:我有5 个节点,3 个主节点(用于热数据)和2 个数据节点(一个用于暖数据,第二个用于冷数据)
谢谢你的帮助
Elasticsearch 使用分片的概念将索引细分为多个部分,并允许我们制作一个或多个索引分片的副本,称为副本。请参阅此SO 答案以详细了解分片和副本。
将分片和副本的数量设置为索引的属性:
PUT /indexName
{
"settings": {
"index": {
"number_of_shards": 6,
"number_of_replicas": 2
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你的索引有 3 个分片,每个分片有 2 个副本,那么这意味着总共有 9 个分片,但当时只有 3 个分片处于活动状态。如果分片分配没有以正确的方式完成,那么它可能会导致集群中的性能问题。
选择分片和副本数量的一些重要提示:
索引创建后分片数不能更改。如果您后来发现有必要更改分片的数量,那么您将不得不再次重新索引所有文档。
要决定没有分片,您必须选择一个起点,然后通过对您的数据和查询进行测试来尝试找到最佳大小。
副本倾向于提高搜索性能(并非总是如此)。但是,建议至少有 1 个副本(以便在硬件故障时保留数据)
请参阅这篇中等文章,其中指出节点数和分片数(主分片 + 副本)应成正比。这对于 Elasticsearch 确保适当的负载平衡很重要。
如本文所述,建议将每个节点的分片数量保持在其配置的每 GB 堆 20 以下。
根据此博客,当您计划容量时,尝试以最初配置数据集时拥有的节点数的 150% 到 300%(或大约两倍)的比率分配分片
| 归档时间: |
|
| 查看次数: |
1085 次 |
| 最近记录: |