es搜索核心与实战Day06
一、分布式特性
-
Elasticsearch的分布式架构带来的好处
1.存储的水平扩展,支持PB级数据
- 提高系统的可用性,部分节点停止服务,整个集群的服务不受影响
-
Elasticsearch的分布式架构
1.不同的集群通过不过的名字来区分,默认名字“elasticsearch”
2.通过配置文件修改,或者在命令行中 -E cluster.name=geektime设定
二、Coordinating Node
- 处理请求的节点,叫Coordinating Node
- 路由请求到正确的节点,例如创建索引的请求,需求路由到Master节点
- 所有节点默认都是Coordinating Node
- 通过将其他类型设置成False,使其成为Dedicated Coordinating Node
三、Data Node
- 可以保存数据节点,叫做Data Node
节点启动后,默认就是数据节点,可以设置node.data:false禁止
- Data Node的职责
保存分片数据。在数据扩展上起到了至关重要的作用(由Master Node决定如何把分片发到数据节点上)
- 通过增加数据节点
可以解决数据水平扩展和解决数据单点问题
四、Master Node
- Master Node的职责
处理创建,删除索引等请求/决定分片被分配到那个节点/负责索引的创建与删除
维护并且更新 Cluster State
-
Master Node的最佳实践
Master节点非常重要,在部署上需要考滤解决单点的问题
为一个集群设置多个Master节点/每个节点只承担Master 的单一角色
Master Eligible Nodes&选主流程
- 一个集群,支持配置多个Master Eligible节点。这些节点可以在必要时(如Master节点出现故障,网络故障时)参与选主流程,成为Master节点
- 每个节点启动后,默认就是一个Master Eligible节点
可以设置node.master:false禁止
- 当集群内第一个Master Eligible节点启动动时候,它会将自己选举成Master节点
五、集群状态
-
集群状态信息(Cluster State),维护了一个集群中,必要的信息
所有的节点信息
所有的索引和其相关的Mapping与Setting信息
分片的路由信息
-
在每个节点上都保存了集群的状态信息
-
但是,只有Master节点才能修改集群的状态信息,并负责同步给其他节点
-
因为,任意节点都能修改信息会导致Cluster State信息的不一致
六、Primary Shard-提升系统存储容量
- 分片是Elasticsearch分布式存储的基石
主分片/副本分片
- 通过主分片,将数据分布在所有节点上
Primary Shard,可以将一份索引的数据,分散在多个Data Node上,实现存储水平扩展
主分片数在索引创建时候指定,后续默认不能修改,如果修改,需要重建索引
Replica Shard-提高数据可用性
- 通过引入副本分片(Replica Shard)提高数据的可用性。一旦主分片丢失,副本分片可以Promot成主分片。副本分片数可以动态调整。每个节点上都具有完备的数据。如果不设置副本分片,一旦出现节点硬件故障,就有可能造成数据丢失
七、集群的故障转移
mot成主分片。副本分片数可以动态调整。每个节点上都具有完备的数据。如果不设置副本分片,一旦出现节点硬件故障,就有可能造成数据丢失