【ES专题】ElasticSearch集群架构剖析_es集群(2)

本文详细介绍了Elasticsearch集群的架构,包括Master Node、Data Node、Coordinate Node和Ingest Node的角色和功能。Master Node负责集群管理和索引操作,Data Node存储和索引数据,Coordinate Node协调请求和结果聚合,Ingest Node用于数据预处理。文章还探讨了生产环境的最佳实践,如节点角色的分离、水平扩展、异地多活架构和Hot & Warm架构,以及集群容量规划的考虑因素。
摘要由CSDN通过智能技术生成

关于Data Node 和 Coordinating Node

  • Data Node:
    • 可以保存数据的节点,叫做Data Node,负责保存分片数据。在数据扩展上起到了至关重要的作用
    • 节点启动后,默认就是数据节点。可以设置node.data: false禁止
    • 由Master Node决定如何把分片分发到数据节点上
    • 通过增加数据节点可以解决数据水平扩展和解决数据单点问题
  • Coordinating Node:
    • 负责接受Client的请求, 将请求分发到合适的节点,最终把结果汇集到一起
    • 每个节点默认都起到了Coordinating Node的职责

其他节点类型

  • Hot & Warm Node:冷热节点。不同硬件配置 的Data Node,用来实现Hot & Warm架构,降低集群部署的成本

不同硬件配置,通常是CPU跟硬盘。硬盘根据冷热数据类型,可以选择固态或者机械硬盘

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

以下是一个多集群业务架构图:
在这里插入图片描述

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

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

要使用管道&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值