Skip to content

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 个以防故障。面试时,可提节点职责或画集群图,展示理解深度。