Elasticsearch(ES)分片(Shard)和 副本分片(Replica Shard)

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ

Hadoop HDFS

Elasticsearch ES (本章节)

前面我们介绍了ES里面的核心概念索引和文档,我们下面来通过命令查询和创建它,并且就顺势就引入了主分片和副本分片的概念。

分片

创建索引(Index)

创建索引的时候也可以不指定索引的分片和副本数量,默认他们都是1(不同的版本这个数字则不一样)。

vbnet 复制代码
curl -X PUT "http://192.168.31.171:9200/my_index" -H "Content-Type: application/json" -d'
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 2
  }
}'

#返回下面就是提示成功了
{"acknowledged":true,"shards_acknowledged":true,"index":"my_index"}

number_of_shards:就是分片数量,这里定义了3个分片。``number_of_replicas:就是副本,这里定义了2个副本,总共加起来就是3份数据。

arduino 复制代码
[root@localhost ~]# curl -X GET "http://192.168.31.171:9200/_cat/indices?v"
health status index            uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .geoip_databases _-JYNHNfToypQ7CADx8YhQ   1   1         40            0     76.8mb         38.4mb
green  open   my_index         k_ThO4UlTFOCbmmOiYMEig   3   2          0            0      1.9kb           681b

health:索引的健康状态(green,yellow,red)。只要有一个索引非green,集群就是非green状态。

status:索引的状态(open,close),这个只有在为了减少jvm内存占用的情况下会设置关闭。

index:索引的名字,es默认自带的一个索引+我们创建2的索引。

uuid:索引id

pr:主分片数量,也就是我们前面创建的适合定义的number_of_shards。创建时候固定,不能修改。

rep:副本分片数量,number_of_replicas创建的时候定义,可以后期修改。

docs.count:文档的数量,通过这个我们就知道索引里面有多少数据。

docs.deleted:待删除的文档数量。

store.size:索引占用的实际磁盘空间(包含副本数据)。

pri.store.size:原始数据大小(不包含副本数据)

分片副本

less 复制代码
[root@localhost ~]# curl -X GET "http://192.168.31.171:9200/_cat/shards?v"
index                                                         shard prirep state   docs  store ip             node
.ds-ilm-history-5-2025.08.01-000001                           0     r      STARTED             192.168.31.173 node-173
.ds-ilm-history-5-2025.08.01-000001                           0     p      STARTED             192.168.31.172 node-172
.ds-.logs-deprecation.elasticsearch-default-2025.08.01-000001 0     r      STARTED             192.168.31.171 node-171
.ds-.logs-deprecation.elasticsearch-default-2025.08.01-000001 0     p      STARTED             192.168.31.173 node-173
my_index                                                      2     r      STARTED    0   227b 192.168.31.171 node-171
my_index                                                      2     r      STARTED    0   227b 192.168.31.173 node-173
my_index                                                      2     p      STARTED    0   227b 192.168.31.172 node-172
my_index                                                      1     r      STARTED    0   227b 192.168.31.171 node-171
my_index                                                      1     p      STARTED    0   227b 192.168.31.173 node-173
my_index                                                      1     r      STARTED    0   227b 192.168.31.172 node-172
my_index                                                      0     p      STARTED    0   227b 192.168.31.171 node-171
my_index                                                      0     r      STARTED    0   227b 192.168.31.173 node-173
my_index                                                      0     r      STARTED    0   227b 192.168.31.172 node-172
.geoip_databases                                              0     r      STARTED   40 38.4mb 192.168.31.171 node-171
.geoip_databases                                              0     p      STARTED   40 38.4mb 192.168.31.172 node-172
[root@localhost ~]# 

index:索引名字,以"."开头都是系统索引,我们暂时不用关注。

shard:分片编号,默认以0开头,可以看到我们前面创建的0,1,2编号的分片及他的副本分片。

prirep:分片属性,主分片及副本分片。

state:分片状态,一般正常看到的都是STARTED状态。我们查询集群状态就有一个操作是检查UNASSIGNED状态数量。

docs:分片是文档数量,一般而言每个分片都是几乎相等的。

store:分片大小。

ip:分片所在节点ip。

node:分片所在节点名字(存在一个服务器多个节点的情况)。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

相关推荐
0+1116 小时前
Linux --从 poll 到 epoll多路转接
linux·服务器·1024程序员节
青瓦梦滋6 小时前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http
桌面运维家6 小时前
旧电脑跑不动课程软件,VDI云桌面怎样接着用?
运维·服务器·虚拟化·pve·vdi·云桌面
zhang133830890756 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
知已难寻7 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
2601_949847759 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_639906949 小时前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
今天重构了吗10 小时前
Linux 上 rm -rf 删错了能找回吗
运维·服务器
KaiwuDB10 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
codezzzsleep10 小时前
学术汇报 PPT 自动化生成实战指南
运维·自动化·powerpoint