es中节点类型有哪些

Elasticsearch 节点类型有哪些

在 Elasticsearch 中,节点类型(或角色)定义了每个节点在集群中的职责。不同版本的 Elasticsearch 对节点角色的定义和管理方式有所不同,尤其在 7.9.0 版本引入 node.roles 后,配置方式更加明确。以下是 Elasticsearch 的节点类型(角色)及其功能说明,涵盖 6.x 和 7.x/8.x 的情况。


Elasticsearch 节点类型

1. 主节点(Master Node)

  • 功能
    • 负责集群的管理任务,例如创建/删除索引、跟踪节点状态、分片分配等。
    • 不存储数据或处理查询,仅维护集群元数据。
  • 配置方式
    • 6.x:node.master: true
    • 7.9.0+:node.roles: [ "master" ]
  • 特点
    • 需要高可用性,通常集群中至少 3 个主节点(通过 discovery.zen.minimum_master_nodescluster.initial_master_nodes 配置)。
    • 对 CPU 和内存要求较低,但网络延迟敏感。

2. 数据节点(Data Node)

  • 功能
    • 存储索引数据,执行数据相关的操作(如索引、搜索、聚合)。
    • 处理客户端的查询请求。
  • 配置方式
    • 6.x:node.data: true
    • 7.9.0+:node.roles: [ "data" ]
  • 特点
    • 对存储(磁盘)、内存和 CPU 要求较高。
    • 在 7.x 中进一步细分为以下子类型(见下文)。

3. 摄取节点(Ingest Node)

  • 功能
    • 预处理文档数据(如转换、过滤、添加字段),通过 Ingest Pipeline 执行。
    • 减轻数据节点的负担。
  • 配置方式
    • 6.x:node.ingest: true
    • 7.9.0+:node.roles: [ "ingest" ]
  • 特点
    • 可与数据节点结合使用,或独立部署。
    • 对 CPU 和内存需求中等。

4. 协调节点(Coordinating Node)

  • 功能
    • 不存储数据、不担任主节点,仅负责路由客户端请求、聚合查询结果。
    • 充当负载均衡器,减轻其他节点的压力。
  • 配置方式
    • 6.x:node.master: falsenode.data: falsenode.ingest: false
    • 7.9.0+:node.roles: [](空角色列表)
  • 特点
    • 默认情况下,每个节点都可以是协调节点,除非明确禁用其他角色。
    • 对内存和网络带宽要求较高。

5. 数据子类型(7.x 引入,细化 Data Node)

在 7.x 中,数据节点可以根据存储和查询需求进一步细分,通过 node.roles 指定:

  • 热数据节点(Data Hot Node)
    • 存储最近写入的高频访问数据。
    • 配置:node.roles: [ "data_hot" ]
    • 特点:需要高性能 SSD 和更多内存。
  • 温数据节点(Data Warm Node)
    • 存储较老、访问频率较低的数据。
    • 配置:node.roles: [ "data_warm" ]
    • 特点:对磁盘性能要求中等。
  • 冷数据节点(Data Cold Node)
    • 存储很少访问的归档数据,支持冻结索引。
    • 配置:node.roles: [ "data_cold" ]
    • 特点:可使用低成本磁盘,查询延迟较高。
  • 冻结数据节点(Data Frozen Node,7.13+)
    • 存储极少访问的冻结索引,通常与可搜索快照结合。
    • 配置:node.roles: [ "data_frozen" ]
    • 特点:依赖快照存储,内存需求低。

6. 机器学习节点(Machine Learning Node)

  • 功能
    • 执行 X-Pack 的机器学习任务(如异常检测、预测)。
  • 配置方式
    • 6.x:node.ml: true
    • 7.9.0+:node.roles: [ "ml" ]
  • 特点
    • 需要额外许可证(X-Pack 商业功能)。
    • 对 CPU 和内存要求较高。

7. 远程合格节点(Remote Eligible Node,7.x+)

  • 功能
    • 参与跨集群搜索(Cross-Cluster Search),连接远程集群。
  • 配置方式
    • 7.9.0+:node.roles: [ "remote_cluster_client" ]
  • 特点
    • 需要网络访问远程集群。

8. 转换节点(Transform Node,7.2+)

  • 功能
    • 处理 Transform API,用于数据转换和汇总。
  • 配置方式
    • 7.9.0+:node.roles: [ "transform" ]
  • 特点
    • 可与摄取节点结合,通常需要额外计算资源。

9. 投票专用节点(Voting-Only Node,7.4+)

  • 功能
    • 仅参与主节点选举,不存储数据或执行其他任务。
  • 配置方式
    • 7.9.0+:node.roles: [ "voting_only" ]
  • 特点
    • 用于小型集群,增加选举稳定性。

配置方式演变

  • 6.x 及更早版本

    • 使用布尔属性(如 node.masternode.data)独立配置。

    • 默认情况下,节点同时具有主节点和数据节点角色。

    • 示例:

      yaml 复制代码
      node.master: true
      node.data: false
      node.ingest: false
  • 7.9.0+

    • 使用 node.roles 数组统一配置。

    • 默认不再是主节点和数据节点,必须显式指定。

    • 示例:

      yaml 复制代码
      node.roles: [ "master", "data" ]

典型配置示例

  1. 专用主节点

    yaml 复制代码
    node.roles: [ "master" ]
  2. 热数据节点

    yaml 复制代码
    node.roles: [ "data_hot" ]
  3. 协调节点

    yaml 复制代码
    node.roles: []
  4. 混合节点

    yaml 复制代码
    node.roles: [ "master", "data", "ingest" ]

注意事项

  • 角色组合
    • 小型集群可将多个角色组合在同一节点(例如主节点+数据节点)。
    • 大型集群建议分离角色,提升性能和稳定性。
  • 最低主节点数
    • 6.x:通过 discovery.zen.minimum_master_nodes 设置。
    • 7.x+:通过 cluster.initial_master_nodes 初始化。
  • 资源需求
    • 数据节点需要更多磁盘和内存,主节点需要低延迟网络。
  • 版本兼容性
    • 6.x 不支持 data_hotdata_cold 等子类型,这些是 7.x 新增的。

验证节点角色

运行以下命令查看集群中每个节点的角色:

bash 复制代码
curl -X GET "http://localhost:9200/_cat/nodes?v&h=ip,name,roles"
  • 输出示例(7.x):

    复制代码
    ip          name      roles
    172.18.0.2  es-node1  m,d
    172.18.0.3  es-node2  d
    172.18.0.4  es-node3  d
    • m:主节点,d:数据节点。

总结

Elasticsearch 的节点类型包括主节点、数据节点(含热/温/冷/冻结子类型)、摄取节点、协调节点等,7.x 还引入了机器学习、转换等专用角色。6.x 使用布尔属性配置,而 7.9.0+ 使用 node.roles 统一管理。根据集群规模和需求,可以灵活组合角色以优化性能和资源利用率。

如果你需要针对特定版本或场景调整节点配置,可以告诉我,我会提供更详细的帮助!

复制代码
---

这份 Markdown 文档结构清晰,包含标题、代码块和列表,便于阅读和理解。如果需要进一步调整或补充,请告诉我!
相关推荐
奔跑的废柴1 小时前
Jenkins学习(B站教程)
运维·学习·jenkins
Tee xm1 小时前
清晰易懂的 Jenkins 安装与核心使用教程
linux·windows·macos·ci/cd·jenkins
小诸葛的博客3 小时前
es基本概念
大数据·elasticsearch·搜索引擎
青云交3 小时前
Java 大视界 -- Java 大数据机器学习模型在金融衍生品定价中的创新方法与实践(166)
java·大数据·金融·数据采集·机器学习模型·java 大数据·金融衍生品定价
Y1nhl4 小时前
Pyspark学习二:快速入门基本数据结构
大数据·数据结构·python·学习·算法·hdfs·pyspark
互联网之声9 小时前
“清凉海岛·创享一夏” 海南启动旅游线路产品创意设计大赛
大数据·网络·旅游
码界筑梦坊10 小时前
基于Spark的酒店数据分析系统
大数据·分布式·python·信息可视化·spark·毕业设计·个性化推荐
码界筑梦坊10 小时前
基于大数据的美团外卖数据可视化分析系统
大数据·python·信息可视化
Cloud_.10 小时前
Spring Boot整合Elasticsearch
java·spring boot·后端·elasticsearch·es
小样vvv10 小时前
【面试篇】Es
elasticsearch·面试·职场和发展