master 主节点(m)
# es6-
node.master: true
# es7+
node.roles: ["master"]
主节点负责集群相关的操作,例如创建或删除索引,跟踪哪些节点是集群的一部分,以及决定将哪些分片分配给哪些节点。
拥有稳定的主节点是衡量集群健康的重要标志。
注意:
1、由于索引和搜索数据都是 CPU、内存、IO 密集型的,可能会对数据节点的资源造成较大压力。 因此,在较大规模的集群里,最好要设置单独的仅主节点角色。(这点 PB 级集群调优时重点关注)
2、不要将主节点同时充当协调节点的角色,因为:对于稳定的集群来说,主节点的角色功能越单一越好。
data 数据节点(d)
# es6-
node.data: true
# es7+
node.roles: ["data"]
数据节点存储数据并参与数据处理,保存包含索引文档的分片数据,执行 CRUD、搜索、聚合相关的操作。属于:内存、CPU、IO 密集型,对硬件资源要求高。
ingest 摄取节点(i)
# es6-
node.ingest: true
# es7+
node.roles: ["ingest"]
支持数据摄取管道的预处理功能,负责在整个 Elasticsearch 集群中分发查询。
它处理处理请求所需的工作委派。 与数据节点不同,协调节点不会自行搜索数据,而是将该任务分配给数据节点。
ingest 机器学习节点(i)
# es6-
node.ml: true
# es7+
node.roles: ["ml"]
非常适合处理机器学习 API 调用
参考:
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/modules-node.html
https://www.elastic.co/guide/en/elasticsearch/reference/6.8/modules-node.html