- Elasticsearch基础篇(七):分片大小修改和路由分配规则
- 1. 分片
-
- 1.1 主分片(Primary Shard)
- 1.2 副本分片(Replica Shard)
- 1.3 分片路由(Routing Shard)
- 2. 分片分配的基本策略
- 3. 分片写入验证
-
- 3.1 数据写入测试
- 3.2 路由机制
- 4. 修改分片数量
-
- 4.1 修改主分片数量
- 4.2 Reindex修改主分片的数量
- 4.3 修改副分片数量
Elasticsearch基础篇(七):分片大小修改和路由分配规则
1. 分片
在Elasticsearch中,分片是对索引数据的水平划分和分布。索引被分成多个分片,每个分片可以在集群的不同节点上存储。这种分片的设计提供了一种水平扩展的能力,允许将大量数据分布到多个节点上,从而提高性能和可伸缩性。每个分片就是一个Lucene的实例,具有完整的功能。
1.1 主分片(Primary Shard)
每个索引都被划分成若干个主分片,每个主分片都是一个独立的索引。主分片负责处理所有的读和写操作。主分片的数量在索引创建时确定,之后不能更改。
1.2 副本分片(Replica Shard)
为了提高系统的可用性和容错性,每个主分片都可以有零个或多个副本分片。副本分片是主分片的完整复制,位于不同的节点上。如果某个节点故障,系统仍然能够通过副本分片提供服务。副本的数量可以在索引运行时动态调整。
1.3 分片路由(Routing Shard)
数据被分配到特定的分片是通过分片路由机制实现的。默认情况下,Elasticsearch使用文档ID的哈希值进行路由,确保数据在不同主分片上均匀分布。开发者也可以自定义路由值。
2. 分片分配的基本策略
- ES使用数据分片(shard)来提高服务的可用性,将数据分散保存在不同的节点上以降低当单个节点发生故障时对数据完整性的影响,同时使用副本(repiica)来保证数据的完整性。关于分片的默认分配策略,在7.x之前,默认5个primary shard,每个primary shard默认分配一个replica,即5主1副,而7.x之后,默认1主1副
- ES在分配单个索引的分片时会将每个分片尽可能分配到更多的节点上。但是,实际情况取决于集群拥有的分片和索引的数量以及它们的大小,不一定总是能均匀地分布。
- Paimary只能在索引创建时配置数量,而replica可以在任何时间分配,并且primary支持读和写操作,而replica只支持客户端的读取操作,数据由es自动管理,从primary同步。
- ES不允许Primary和它的Replica放在同一个节点中,并且同一个节点不接受完全相同的两个Replica
3. 分片写入验证
es集群,ip: 192.168.0.156,节点端口:9201,9202,9203
设置索引分片数量
http://192.168.0.156:9201/test_index/
{
"settings": {
"index": {
"number_of_shards": "3",
"number_of_replicas": "2"