Elasticsearch 节点角色配置

节点角色

在 Elasticsearch 7.x 中,节点角色标识了一个节点在集群中扮演的角色,不同的角色代表着节点具备不同的功能和责任。默认情况下,一个节点的角色为cdhilmrstw,即拥有所有角色。

各角色含义为:

C: Coordinator(协调节点) – 该节点负责协调集群中的请求,并将请求路由到数据节点上,作为一个智能的负载均衡器。它不保存数据,但是负责处理搜索请求和聚合请求。每个节点都是一个协调节点,无需显式配置。
D: Data(数据节点) – 该节点存储数据,执行数据相关的操作,比如索引和搜索。大多数情况下,数据节点是集群中最常见的节点类型。
H: Hot(热节点) – 该节点专门用于存储最活跃的数据,通常用于存储最频繁访问的数据,以提高性能。
I: Ingest(预处理节点) – 该节点负责在数据索引之前对数据进行预处理,比如数据的转换、提取、规范化等操作。
L: Machine Learning(机器学习节点) – 该节点负责执行与机器学习相关的任务,比如创建、管理和运行机器学习作业。
M: Master(主节点) – 该节点负责集群管理任务,比如维护集群状态、进行节点的加入和移除、进行主节点的选举等。
R: Remote Cluster Client(远程集群客户端) – 该节点充当远程集群的客户端,用于与其他集群进行交互。
S: Snapshot(快照节点) – 该节点负责执行快照和恢复相关的任务,比如对索引进行快照备份和恢复。
T: Transform(转换节点) – 该节点负责执行数据转换任务,比如对数据进行聚合、转换和汇总。
W: Machine Learning Data(机器学习数据节点) – 该节点存储与机器学习相关的数据。

主节点

主节点负责轻量级集群范围的操作,如创建或删除索引、跟踪集群节点状态以及决定将索引分片分配给哪些节点,对服务器配置要求不高。拥有一个稳定的主节点对于集群运行状况非常重要。

如果选定的主节点被其他任务过载,则集群可能无法正常运行。特别是索引和搜索数据可能会占用大量资源(数据节点),因此在大型或高吞吐量集群中,最好避免将符合条件的主节点用于索引和搜索等任务。

候选主节点

参与主节点选举投票,并作为主节点候选节点

node.roles: [ master]

只投票主节点

只参与主节点选举投票,但不作为主节点候选。

node.roles: [ master, voting_only]

一个高可用集群中,至少需要三个主节点,并且其中至少两个不是仅投票主节点。

可以和数据节点、协调节点结合使用

node.roles: [ data, master, voting_only]

数据节点

数据节点保存包含已索引文档的索引分片。数据节点负责处理与数据相关的操作,如CRUD、搜索和聚合。这些操作是I/O密集型、内存密集型和CPU密集型的,需要配置较好的服务器。数据节点应与主节点分离,避免数据节点负载过重时,主节点不响应。

一个简单的数据节点

node.roles: [ data]

数据分层

数据节点可以根据集群配置、服务器资源来进行分层,划分为hot、warm、cold三个层次,然后配合index alloc filter将索引数据分配在不同数据节点上。

hot节点

node.roles: [data_hot, date_content]

warm节点

node.roles: [data_warm, date_content]

cold节点

node.roles: [data_cold, date_content]

预处理节点

预处理节点可以执行由一个或多个预处理器组成的预处理管道,在数据索引之前对数据进行预处理,比如数据的转换、提取、规范化等操作。一个具体的例子是,filebeat采集日志后,输出到Elasticsearch集群中的Ingest节点,Ingest节点中使用grok对日志进行预处理。

预处理节点

node.roles: [ ingest ]

只协调节点

只协调节点可以通过将协调节点角色从数据和候选主节点中分离出来,从而使大型集群受益。与其他节点一样,它们加入集群并接收完整的集群状态,并使用集群状态将请求直接路由到适当的位置。

专用的协调节点:

node.roles: [ ]

参考文档

https://www.elastic.co/guide/en/elasticsearch/reference/7.10/modules-node.html

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...