2024年大数据最全【ES专题】ElasticSearch集群架构剖析_es集群

  • Ingest Node:数据前置处理转换节点,支持pipeline管道设置,可以使用ingest对数据进行过滤、转换等操作
  • Machine Learning Node:负责跑机器学习的Job,用来做异常检测
  • Tribe Node:Tribe Node连接到不同的Elasticsearch集群,并且支持将这些集群当成一个单独的集群处理

以下是一个多集群业务架构图:
2024年大数据最全【ES专题】ElasticSearch集群架构剖析_es集群_第1张图片

1.2.1.1 Master Node主节点的功能

Master节点主要功能::

  1. 管理索引和分片的创建、删除和重新分配
  2. 监测节点的状态,并在需要时进行重分配
  3. 协调节点之间的数据复制和同步工作
  4. 处理集群级别操作,如创建或删除索引、添加或删除节点等
  5. 维护集群的状态
1.2.1.2 Data Node数据节点的功能

Data Node数据节点的功能:

  1. 存储和索引数据:Data Node 节点会将索引分片存储在本地磁盘上,并对查询请求进行响应
  2. 复制和同步数据:为了确保数据的可靠性和高可用性,ElasticSearch 会将每个原始分片的多个副本存储在不同的 Data Node 节点上,并定期将各节点上的数据进行同步
  3. 参与搜索和聚合操作:当客户端提交搜索请求时,Data Node 节点会使用本地缓存和分片数据完成搜索和聚合操作
  4. 执行数据维护操作:例如,清理过期数据和压缩分片等

官方定义:
数据节点保存包含您已索引的文档的分片。数据节点处理数据相关操作,例如 CRUD、搜索和聚合。这些操作是 I/O、内存和 CPU 密集型操作。监视这些资源并在过载时添加更多数据节点非常重要。
拥有专用数据节点的主要好处是主角色和数据角色的分离。
要创建专用数据节点,请设置:node.roles: [ data ]
在多层部署体系结构中,您可以使用专门的数据角色将数据节点分配到特定层:data_contentdata_hotdata_warmdata_colddata_frozen。一个节点可以属于多个层,但具有专用数据角色之一的节点不能具有通用data角色。

1.2.1.3 Coordinate Node协调节点的功能

官方定义:
诸如搜索请求或批量索引请求之类的请求,它们可能涉及不同数据节点上保存的数据。例如,搜索请求分两个阶段执行,这两个阶段由接收客户端请求的节点(协调节点)协调。

  1. 在分散阶段,协调节点将请求转发到保存数据的数据节点。每个数据节点在本地执行请求并将其结果返回给协调节点
  2. 在收集阶段,协调节点将每个数据节点的结果缩减为单个全局结果集

每个节点都是隐式的协调节点。这意味着具有显式空角色列表的节点node.roles将仅充当协调节点,无法禁用。因此,这样的节点需要有足够的内存和 CPU 才能处理收集阶段。

1.2.1.4 Ingest Node协调节点的功能

官方定义:
在实际的文档索引发生之前,使用摄取节点对文档进行预处理。摄取节点拦截批量和索引请求,应用转换,然后将文档传递回索引或批量api。

默认情况下,所有节点都启用摄取,因此任何节点都可以处理摄取任务。您还可以创建专用的摄取节点。如果要禁用节点的摄取,请在elasticsearch. conf中配置以下配置。yml文件:node.ingest: false

要在索引之前对文档进行预处理,请定义一个指定一系列处理器的管道。每个处理器都以某种特定的方式转换文档。例如,管道可能有一个处理程序从文档中删除字段,然后有另一个处理程序重命名字段。然后,集群状态存储配置的管道。

要使用管道,只需在索引或批量请求上指定pipeline参数。这样,摄取节点就知道要使用哪个管道。例如:

PUT my-index/my-type/my-id?pipeline=my_pipeline_id
{
  "foo": "bar"
}

1.2.1.5 其他节点功能

其他节点相对来说使用的比较少,不做介绍了

1.2.1.6 Master Node主节点选举流程

ES的选举流程也很简单,如下:

  1. 通常集群启动时,第一个启动的节点会被选为主节点。当主节点挂了的时候,进行下一步
  2. 互相Ping对方,Node ld 低的会成为被选举的节点
  3. 其他节点会加入集群,但是不承担Master节点的角色。一旦发现被选中的主节点丢失,就会重新选举出新的Master节点

在我们的生产过程中,Master Node的最佳实践方案

  • Master节点非常重要&#x

你可能感兴趣的:(程序员,大数据,elasticsearch,架构)