有没有人能告诉我如何为elasticsearch索引选择碎片和副本的数量?我已经将索引的大小配置为20gb,但不知道如何选择碎片和副本的数量注意:我有5个节点,3个主节点(用于热数据)和2个数据节点(一个用于热数据,另一个用于冷数据)谢谢你的帮助
cig3rfwq1#
这里有几个选项可以用来设置碎片和副本的数量。1.使用模板(如果要将相同的设置设置为多个索引):折射率分布模板
PUT _template/my_template { "order": 0, "index_patterns": [ "<your-index1>","<your-index2>" ], "settings": { "index": { "number_of_shards": "2", "number_of_replicas": "1" } }, "mappings": {}, "aliases": {} }
2.更新单个索引设置:更新索引设置api
PUT /my-index/_settings { "index": { "number_of_shards": "2", "number_of_replicas": "1" } }
另外,看看这篇文章,我的elasticsearch集群中应该有多少碎片?
tyg4sfes2#
elasticsearch使用碎片的概念将索引细分为多个部分,并允许我们制作一个或多个称为副本的索引碎片副本。请参考这个答案,以便详细了解碎片和副本。要将碎片和副本的数量设置为索引的属性,请执行以下操作:
PUT /indexName { "settings": { "index": { "number_of_shards": 6, "number_of_replicas": 2 } } }
如果索引中有3个碎片,每个碎片有2个副本,则表示总共有9个碎片,但此时只有3个碎片处于活动使用状态。如果shard分配没有以正确的方式完成,那么可能会导致集群中的性能问题。选择碎片和副本数量的一些重要提示:创建索引后无法更改碎片数。如果您以后发现有必要更改碎片的数量,那么您必须再次为所有文档重新编制索引。要决定碎片的数量,您必须选择一个起点,然后通过测试数据和查询来尝试找到最佳大小。副本往往会提高搜索性能(并非总是如此)。但是,建议至少有一个副本(以便在硬件故障时保留数据)请参阅这篇中等篇幅的文章,其中指出节点数和碎片数(主碎片+副本)应该是成比例的。这对于elasticsearch确保适当的负载平衡非常重要。如本文所述,建议将每个节点的碎片数保持在配置的每gb堆20个以下。根据这个博客,当您计划容量时,尝试以150%到300%的速率分配碎片(大约是您最初配置数据集时节点数的两倍)请参阅本文和本文,以获得有关碎片和副本的详细说明
2条答案
按热度按时间cig3rfwq1#
这里有几个选项可以用来设置碎片和副本的数量。
1.使用模板(如果要将相同的设置设置为多个索引):
折射率分布模板
2.更新单个索引设置:
更新索引设置api
另外,看看这篇文章,我的elasticsearch集群中应该有多少碎片?
tyg4sfes2#
elasticsearch使用碎片的概念将索引细分为多个部分,并允许我们制作一个或多个称为副本的索引碎片副本。请参考这个答案,以便详细了解碎片和副本。
要将碎片和副本的数量设置为索引的属性,请执行以下操作:
如果索引中有3个碎片,每个碎片有2个副本,则表示总共有9个碎片,但此时只有3个碎片处于活动使用状态。如果shard分配没有以正确的方式完成,那么可能会导致集群中的性能问题。
选择碎片和副本数量的一些重要提示:
创建索引后无法更改碎片数。如果您以后发现有必要更改碎片的数量,那么您必须再次为所有文档重新编制索引。
要决定碎片的数量,您必须选择一个起点,然后通过测试数据和查询来尝试找到最佳大小。
副本往往会提高搜索性能(并非总是如此)。但是,建议至少有一个副本(以便在硬件故障时保留数据)
请参阅这篇中等篇幅的文章,其中指出节点数和碎片数(主碎片+副本)应该是成比例的。这对于elasticsearch确保适当的负载平衡非常重要。
如本文所述,建议将每个节点的碎片数保持在配置的每gb堆20个以下。
根据这个博客,当您计划容量时,尝试以150%到300%的速率分配碎片(大约是您最初配置数据集时节点数的两倍)
请参阅本文和本文,以获得有关碎片和副本的详细说明