Elasticsearch基础-索引、主分片、副本分片介绍

一、索引介绍

  我们往 Elasticsearch 添加数据时需要用到 索引  —— 保存相关数据的地方。

  索引实际上是指向一个或者多个物理 分片 的 逻辑命名空间索引在默认情况下会被分配 5个主分片

二、分片介绍

  一个 分片 是一个底层的 工作单元 ,它仅保存了全部数据中的一部分。现在我们只需知道一个分片是一个 Lucene 的实例,以及它本身就是一个完整的搜索引擎。 我们的文档被存储和索引到分片内,但是应用程序是直接与索引而不是与分片进行交互。

  Elasticsearch 是利用分片将数据分发到集群内各处的。分片是数据的容器文档保存在分片内,分片又被分配到集群内的各个节点里。 当你的集群规模扩大或者缩小时, Elasticsearch 会自动的在各节点中迁移分片使得数据仍然均匀分布在集群里

2.1 主分片、副本分片  

  一个分片可以是 主分片 或者 副本分片。 索引内任意一个文档都归属于一个主分片,每个主分片拥有一个副本分片,所以主分片的数目决定着索引能够保存的最大数据量。

  一个副本分片只是一个主分片的 拷贝。副本分片作为硬件故障时保护数据不丢失的 冗余备份,并为搜索和返回文档等 读操作提供服务

  在索引建立的时候就已经确定了主分片数,但是副本分片数可以随时修改

 

三、未被分配分片的查看及说明

  集群的健康状况为 yellow 则表示全部 主分片 都正常运行(集群可以正常服务所有请求),但是 副本 分片没有全部处在正常状态。 实际上,所有副本分片都是 unassigned —— 它们都没有被分配到任何节点。 在同一个节点上既保存原始数据又保存副本是没有意义的,因为一旦失去了那个节点,我们也将丢失该节点上的所有副本数据。

  未被分配的副本分片显示如下:

{
......
"status": "yellow",               # status显示为 yellow 
"unassigned_shards": 3,           # yellow表示 副本分片未被分配
......
}    

  当前我们的集群是正常运行的,但是在硬件故障时有丢失数据的风险

 

posted @ 2020-10-10 16:57  KevinT·Mitnick  阅读(673)  评论(0)    收藏  举报