Elasticsearch的集群管理介绍
Elasticsearch 集群管理是确保分布式环境下系统稳定运行、高可用和高性能的关键。以下从集群架构、节点类型、故障转移到监控优化,全面解析 Elasticsearch 集群管理的核心要点:
一、集群架构与节点类型
1. 基本概念
- 集群(Cluster):由一个或多个节点组成,共同存储数据并提供搜索服务,通过唯一的
cluster.name
标识。 - 节点(Node):集群中的单个服务器,负责存储数据、参与集群运算和请求处理。
- 分片(Shard):索引的物理拆分单元,每个分片是一个独立的 Lucene 索引,支持水平扩展和分布式操作。
- 副本(Replica):分片的冗余备份,提供高可用性和读写负载均衡。
2. 节点角色分类
角色类型 | 核心功能 |
---|---|
主节点(Master) | 负责集群元数据管理(如索引创建、分片分配),需稳定且资源充足。通过 node.master: true 配置。 |
数据节点(Data) | 存储索引分片数据,执行数据相关操作(如搜索、聚合),IO 密集型。通过 node.data: true 配置。 |
协调节点(Coordinating) | 接收客户端请求,路由到对应节点并合并结果,需高内存和网络带宽。所有节点默认具备此角色。 |
预处理节点(Ingest) | 执行数据导入前的预处理(如字段转换、JSON 解析),通过 node.ingest: true 配置。 |
机器学习节点(ML) | 运行机器学习作业(如异常检测),需专用资源。通过 node.ml: true 配置。 |
二、集群健康状态与分片分配
1. 集群健康指标
通过 GET /_cluster/health
查看:
-
状态颜色:
- 绿色:所有主分片和副本分片都可用,集群完全健康。
- 黄色:所有主分片可用,但至少有一个副本分片不可用(如节点故障)。
- 红色:至少有一个主分片不可用,数据可能丢失,集群部分功能受限。
-
关键指标:
{"cluster_name": "my_cluster","status": "green", // 集群状态"number_of_nodes": 3, // 节点数<