节点类型
不同角色的节点
Master/Data/Ingest/Coordinating/Machine Learning
生产环境
根据数据量,写入和查询的吞吐量,选择合适的部署方式
建议设置单一角色的节点(dedicated node)
节点参数配置
一个节点在默认情况下会同时扮演master,data,ingest
单一职责的节点
设置对应节点类型为true,其他节点为false
node.master:true
node.ingest:false
node.data:false
职责分离的好处
- master node:负责集群状态管理,分片管理,索引创建等操作
使用低配置机器CPU,RAM,磁盘
从高可用&避免脑裂的角度触发,一般生产环境配置3台master node,设置1台为活跃主节点
- data node: 负责数据存储级处理客户端请求
使用高配置机器CPU,RAM,磁盘
- ingest node: 负责处理数据
使用高配置CPU,中等配置的RAM,低配置磁盘
- coordinating only node
使用中上等配置CPU,中上等配置的RAM,低配置磁盘
node.master:false
node.ingest:false
node.data:false
生产环境中建议大规模集群配置coordinating only node
扮演load balancers,降低master和data nodes的负载
负责搜索结构的gather/reduce
无法预知客户端会发送怎样的请求,大量占用内存的深度聚合操作,可能会引发OOM
不建议coordinate和data node混部
data node占用内存较大,coordinate node有时候会有开销很高的查询,导致oom,进而影响master节点,导致集群不稳定