Elasticsearch Node节点角色
https://www.elastic.co/guide/en/elasticsearch/reference/7.15/modules-node.html
默认情况下,集群中的每个节点都可以处理HTTP和Transport。Transport专门用于节点之间的通信;REST客户端使用HTTP层。
所有节点都知道集群中的所有其他节点,并且可以将客户端请求转发到适当的节点。
节点角色可以通过配置 node.roles:[...]
默认情况下,节点具有以下角色:
master
data
data_content
data_hot
data_warm
data_cold
data_frozen
ingest
ml
remote_cluster_client
transform
Master-eligible node master候选节点。有角色master,有资格被选举为master。索引和搜索数据可能会占用大量资源,因此在大型或高吞吐量集群中,最好避免使用符合主节点的节点来执行索引和搜索等任务。
主节点负责轻量级集群范围的操作,例如创建或删除索引、跟踪哪些节点是集群的一部分,以及决定将哪些碎片分配给哪些节点。对于集群健康来说,拥有一个稳定的主节点非常重要。
任何拥有 非仅投票 的主节点候选人,都可以通过主节点选举成为主节点。
主节点必须具有对数据/目录的访问权限(就像数据节点一样),因为这是在节点重新启动之间保持集群状态的地方。
高可用群集需要至少三个符合主节点条件的节点,其中至少两个不是仅投票的节点。
由于只投票的节点永远不会充当集群的选定主节点,因此它们所需的堆和CPU可能比真正的主节点少。但是,所有符合主节点条件的节点(包括仅投票节点)都需要相当快的持久性存储和到集群其余部分的可靠、低延迟的网络连接,因为它们位于发布集群状态更新的关键路径上。
仅投票节点可以补充集群的投票机器数量,例如,节点可以是数据节点和仅投票的主节点。
Data node 数据节点。有角色data
,同时具有content hot warn cold frozen角色,存放数据,操作数据的CRUD、search、agg。
这些操作是I/O、内存和CPU密集型操作。专用数据节点的好处是将master角色和data角色分离。
data_content、
data_hot、
data_warm、
data_cold、
data_frozen是data的具体化角色,用于数据分层。
Ingest node 处理ingest pipeline的节点。有角色ingest
。ingest pipeline能够在索引前进行过滤、转换等动作。如果ingest的负载较大,应该把master、data节点的node.ingest设置false,让ingest专用节点来处理比较合适。
Remote-eligible node 有角色remote_cluster_client。
Machine learning node 机器学习节点。有角色ml
。
Transform node Transform节点。有角色transform。
Coordinating node 协调节点。用于处理搜索请求或批量索引请求。所有节点都隐式属于协调节点,而不能禁用。如果node.master
, node.data
and node.ingest
都设为 false,则该节点就是专用的协调节点,这样的节点需要有足够的内存和CPU来处理收集阶段。
综合来讲,在较大规模的集群中,把node的角色分离是非常有意义的,可以提高集群的性能、稳定性