如何选择碎片和副本的数量elasticsearch

ijxebb2r  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(2)|浏览(462)

有没有人能告诉我如何为elasticsearch索引选择碎片和副本的数量?
我已经将索引的大小配置为20gb,但不知道如何选择碎片和副本的数量
注意:我有5个节点,3个主节点(用于热数据)和2个数据节点(一个用于热数据,另一个用于冷数据)
谢谢你的帮助

cig3rfwq

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集群中应该有多少碎片?

tyg4sfes

tyg4sfes2#

elasticsearch使用碎片的概念将索引细分为多个部分,并允许我们制作一个或多个称为副本的索引碎片副本。请参考这个答案,以便详细了解碎片和副本。
要将碎片和副本的数量设置为索引的属性,请执行以下操作:

PUT /indexName

{
  "settings": {
    "index": {
      "number_of_shards": 6,
      "number_of_replicas": 2
    }
  }
}

如果索引中有3个碎片,每个碎片有2个副本,则表示总共有9个碎片,但此时只有3个碎片处于活动使用状态。如果shard分配没有以正确的方式完成,那么可能会导致集群中的性能问题。
选择碎片和副本数量的一些重要提示:
创建索引后无法更改碎片数。如果您以后发现有必要更改碎片的数量,那么您必须再次为所有文档重新编制索引。
要决定碎片的数量,您必须选择一个起点,然后通过测试数据和查询来尝试找到最佳大小。
副本往往会提高搜索性能(并非总是如此)。但是,建议至少有一个副本(以便在硬件故障时保留数据)
请参阅这篇中等篇幅的文章,其中指出节点数和碎片数(主碎片+副本)应该是成比例的。这对于elasticsearch确保适当的负载平衡非常重要。
如本文所述,建议将每个节点的碎片数保持在配置的每gb堆20个以下。
根据这个博客,当您计划容量时,尝试以150%到300%的速率分配碎片(大约是您最初配置数据集时节点数的两倍)
请参阅本文和本文,以获得有关碎片和副本的详细说明

相关问题