ElasticSearch分片参数设置

本文介绍了Elasticsearch中number_of_shards和number_of_replicas的含义及其默认值。强调了主分片数不可在线更改,而副本分片数可以。建议根据节点数量合理设置分片和副本数量,以优化查询性能,并提供了配置示例。
摘要由CSDN通过智能技术生成

number_of_shards:主分片数,默认为1

number_of_replicas:副本分片数,默认为1

可以在线修改副本分片数number_of_replicas,但主分片数number_of_shards不可以在线改

curl -XPUT 'XXXX:9200/_settings' -d ' { "index" : { "number_of_replicas" : 0 } }'

也可以在配置文件 elasticsearch.yml 中进行修改(一般以节点数*1.5或3倍来计算,比如有4个节点,分片数量一般是6到12个,每个分片一般分配一个副本):

index.number_of_shards: 3

设置默认索引分片个数,默认为1片。索引分片对ES的查询性能有很大的影响,在应用环境,应该选择适合的分片大小。

index.number_of_replicas: 1

设置默认索引副本个数,默认为1个副本。此处的1个副本是指index.number_of_shards的一个完全拷贝;如果有5个主分片1个副本分片,即总分片数为10。

Elasticsearch是一个分布式搜索和分析引擎,它通过将据分成多个分片来实现高可用性和可扩展性。下面是关于如何在Elasticsearch中进行分片的一些基本概念和操作步骤: 1. 索引创建时设置分片:在创建索引时,可以使用`number_of_shards`参数设置索引的分片。例如,创建一个具有5个主分片的索引: ``` PUT /my_index { "settings": { "number_of_shards": 5 } } ``` 2. 索引分片路由:Elasticsearch使用分片路由来确定将文档存储在哪个分片中。默认情况下,它使用文档的ID哈希来选择分片。可以通过自定义分片路由来将文档存储到特定的分片中。 3. 动态增加分片:可以通过`/_shrink` API来动态减少分片量,或者通过重新索引(reindex)将据从一个索引移动到另一个具有更多分片的索引。 4. 分片副本:Elasticsearch还支持为每个主分片创建多个副本,以提供高可用性和负载均衡。可以在索引创建时设置`number_of_replicas`参来指定副本量。例如,为一个具有5个主分片和2个副本的索引: ``` PUT /my_index { "settings": { "number_of_shards": 5, "number_of_replicas": 2 } } ``` 5. 分片容量平衡:Elasticsearch会自动将索引的主分片和副本分配到不同的节点上,以实现分片的负载均衡。可以使用`/_cluster/reroute` API手动调整分片分配。 请注意,对于一个已经存在的索引,分片是不可更改的。因此,在创建索引时需要谨慎选择适当的分片。 这些是关于Elasticsearch分片的基本概念和操作步骤,希望对你有所帮助。如需更详细的信息,请参考Elasticsearch官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值