参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/modules-node.html#ml-node
1. 修改节点角色
Data 节点在磁盘上维护的数据有:
分配给该节点的分片上的 Shard 数据
分配给该节点的分片相关联的 index 元数据
集群范围的元数据,例如配置参数和 index 模板
同样的, master-eligible 节点在磁盘上维护的数据有:
集群中每个 index 的 index 元数据
集群范围的元数据,例如配置参数和 index 模板
每个节点在启动时,检查数据路径的内容,在发现非理想数据后,会拒绝启动。这个策略可以避免加载非必要的悬挂 index,而悬挂 index 会导致集群健康为 red 状态。
非 data 角色的节点发现 shard 数据后拒绝启动
非 master 及 data 角色的节点在发现有 index 元数据后拒绝启动
节点重利用:修改 elasticsearch.yml
文件并重启可以修改节点角色。
如果想去掉一个 data 节点的 data 角色,需要使用 allocation filter 来安全的将全部 shard 数据迁移到其他节点
如果想去掉节点的 data 和 master 角色,最简单的方法是使用一个空的数据路径来启动一个全新的节点。
2. 节点角色
集群需要的节点角色有
Master
(
data_content
和data_hot
) 或data
其他角色必要性:
跨集群检索和跨集群副本需要
remote_cluster_client
角色Stack Monitoring 和 ingest pipelines 需要
ingest
角色Fleet,Elastic 安全应用,以及 transforms 需要
transform
角色机器学习特征,例如 anomaly detection,需要 ml 角色
如果具有大量的机器学习任务或持续的 transforms,需要考虑把 master-eligible 节点跟 data 节点、 ml 节点、 transform 节点分开