ES有哪些节点?ES的主节点有多少个?
ES 有哪些节点
Elasticsearch 集群由不同角色的节点组成,主要包括: 1. 主节点(Master Node): - 负责集群管理和元数据操作。 2. 数据节点(Data Node): - 存储和处理数据,执行搜索和索引。 3. 协调节点(Coordinating Node): - 路由请求,合并查询结果。 4. 摄入节点(Ingest Node): - 预处理文档(如数据转换)。 5. 候选主节点(Master-Eligible Node): - 可被选举为主节点的节点。
ES 的主节点有多少个
- 数量:
- 集群中只有一个主节点(Master Node)在任意时刻处于活跃状态,负责集群管理。
- 但可以配置多个候选主节点(Master-Eligible Nodes),以便主节点故障时选举新的主节点。
- 推荐:
- 生产环境中至少 3 个候选主节点,确保选举可靠性。
核心点
- ES 节点分工明确,主节点唯一但可选举。
1. 节点类型详解
(1) 主节点(Master Node)
- 职责:
- 管理集群状态(如分片分配、索引创建)。
- 更新集群元数据(Cluster State)。
- 不直接处理数据或查询。
- 配置:
node.master: true
node.data: false
- 注意:
- 主节点负载轻,但需稳定性。
(2) 数据节点(Data Node)
- 职责:
- 存储分片,执行索引、搜索、聚合。
- 占用 CPU、内存和磁盘。
- 配置:
node.master: false
node.data: true
- 场景:
- 大量数据查询和写入。
(3) 协调节点(Coordinating Node)
- 职责:
- 接收客户端请求,分发到数据节点,合并结果。
- 不存储数据或管理集群。
- 配置:
node.master: false
node.data: false
node.ingest: false
- 默认:
- 每个节点都可协调(可专用)。
(4) 摄入节点(Ingest Node)
- 职责:
- 在索引前预处理文档(如格式转换、字段提取)。
- 支持 Pipeline(如解析日志)。
- 配置:
node.ingest: true
- 示例:
PUT _ingest/pipeline/my-pipeline
{
"processors": [
{ "set": { "field": "new_field", "value": "parsed" } }
]
}
(5) 候选主节点(Master-Eligible Node)
- 职责:
- 有资格参与主节点选举。
- 通常兼任其他角色(如数据节点)。
- 配置:
- 默认所有节点都可选举,除非设置
node.master: false
。 - 选举机制:
- 基于 Raft 算法,需半数以上节点同意。
2. 主节点数量详解
(1) 活跃主节点
- 数量:
- 集群始终只有一个活跃主节点。
- 原因:
- 单一主节点维护集群状态一致性。
- 故障处理:
- 主节点失败,候选主节点选举新主节点。
(2) 候选主节点
- 数量:
- 可配置多个(至少 1 个,推荐 3 个)。
- 推荐设置:
- 集群规模:
- 小型:3 个候选主节点。
- 大型:3-5 个。
- 防止脑裂(Split-Brain):
- 设置
discovery.zen.minimum_master_nodes
:
- 设置
discovery.zen.minimum_master_nodes: (候选主节点数 / 2) + 1
- 例:3 个候选主节点,设为 2。
(3) 选举过程
- 触发:
- 主节点宕机或网络隔离。
- 步骤:
- 候选主节点广播状态。
- 半数以上节点投票选新主节点。
- 新主节点接管集群管理。
- 时间:
- 通常秒级完成。
3. 节点配置示例
小型集群(3 节点)
# 节点 1: 主 + 数据
node.name: node1
node.master: true
node.data: true
# 节点 2: 主 + 数据
node.name: node2
node.master: true
node.data: true
# 节点 3: 数据
node.name: node3
node.master: false
node.data: true
discovery.zen.minimum_master_nodes: 2
4. 延伸与面试角度
- 与性能:
- 主节点轻量,数据节点决定搜索性能。
- 实际应用:
- 日志分析:多数据节点 + 协调节点。
- 搜索:专用协调节点优化响应。
- 优化:
- 分离角色:主节点不存数据。
- 面试点:
- 问“节点”时,提五种角色。
- 问“主节点”时,提选举和脑裂。
总结
ES 节点包括主节点、数据节点、协调节点、摄入节点和候选主节点,活跃主节点只有一个,候选主节点推荐至少 3 个以防故障。面试时,可提节点职责或画集群图,展示理解深度。