ElasticSearch集群相关!

节点

Master

  • 节点负责管理集群状态信息,包括处理创建、删除索引等请求,决定分片被分配到哪个节点,维护和更新集群状态。
  • 值得注意的是,只有Master节点才能修改集群的状态信息,并负责同步给其他节点。

Coordinator

  • 协调节点负责接收客户端的请求,将请求路由到到合适的节点,并将结果汇集到一起。

Data

数据节点是保存数据的节点,增加数据节点可以解决水平扩展和解决数据单点的问题。

按照冷热区分具体的还有:

  • data_content
  • data_hot
  • data_warm
  • data_cold

Ingest:预处理节点是数据前置处理转换的节点,支持Pipeline管道设置,可以对数据进行过滤、转换等操作。

分片

分片是数据的容器,文档保存在分片内,分片又被分配到集群内的各个节点里。

单台机器无法存储大量数据,es可以将一个索引中的数据切分称多个shard,分布在多台机器上存储。

  • 有了shard就可以横向扩展,存储更多数据。

主分片:

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

索引内任意一个文档都归属于一个主分片,所以主分片的数目决定着索引能够保存的最大数据量。

副分片:

一个副本分片只是一个主分片的拷贝。

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

文档到分片的映射算法:

Hash保证数据均匀分布在分片中,Routing作为关键参数,默认为文档ID,number_of_primary_shards为主分片数。

  • 主分片数一旦设定,不能更改,为了保证文档对应的分片不会发生改变。
1
shard = hash(routing)%number_of_primary_shards

集群健康状态

ES的健康状态分为三种:

  • Greed,绿色:表示所有主分片和副本分片都正常分配。

  • Yellow,黄色:表示所有主分片都正常分配,但有副本分片未分配。

  • Red,红色:表示有主分片未分配。