ES集群分布式详解

ES集群分布式详解,第1张

ES集群中各节点角色功能简介

本博客根据ES 715 ,介绍ES中各节点角色功能。集群节点角色可以在配置文件elasticsearchyml中通过noderoles配置,如果配置了节点角色,那么该节点将只会执行配置的角色功能;如果不配置,该节点将会执行以下角色功能:
1、如果私自配置节点信息,请确保集群配置有master角色的节点和data角色的节点

2、如果有较大的机器学习(machine learning)任务或转换(transform)任务,建议将候选的主节点(Master-eligible node)与数据节点(data node)、机器学习节点(machine learning node)和转换节点(transforming node)分开是很有必要的。

3、每个节点都默认为协调节点(Coordinating node),如果noderoles设置为[]那么该节点将只执行协调节点功能
ES集群

(1)Cluster:代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。

(2)Shards:代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。

(3)replicas:代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。

(4)Recovery:代表数据恢复或叫数据重新分布,es在有节点加入或退出时会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复。

(5)ES为什么要实现集群:在单台ES服务器节点上,随着业务量的发展索引文件慢慢增多,会影响到效率和内存存储问题等。ES集群,可以将单个索引的分片到多个不同分布式物理机器上存储,从而可以实现高可用、容错性等。ES集群中索引可能由多个分片构成,并且每个分片可以拥有多个副本。通过将一个单独的索引分为多个分片,我们可以处理不能在一个单一的服务器上面运行的大型索引,简单的说就是索引的大小过大,导致效率问题。不能运行的原因可能是内存也可能是存储。由于每个分片可以有多个副本,通过将副本分配到多个服务器,可以提高查询的负载能力。

(6)es如何解决高并发:ES是一个分布式全文检索框架,隐藏了复杂的处理机制,内部使用 分片机制、集群发现、分片负载均衡请求路由。 Shards 分片:代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。Replicas分片:代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。
5、ES集群脑裂
6、ES集群的分布式存储

·  如新增一个文档流程 文档-->协调节点(hash运算)-->mater-->决策路由到对应主分片如node3节点-->同步副本分片到node2节点上-->返回结构到

协调节点coordinating node-->再传至matster

6、故障转移
·  停掉master

·  cerebro界面集群状态瞬间变黄了

·  这是之前master节点的分片开始转移至剩余的两个节点,集群剩余两个节点,且保证主副分片不在同一个几点

·  重新启动故障节点,集群再次恢复三个节点,分片自动转移过去,但是此时它已不是master节点


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10869285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存