ElasticSearch集群相关!
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,红色:表示有主分片未分配。