ElasticSearch之集群中的节点

对官方文档Node的阅读笔记。

ES集群由一个或者多个ES节点组成。

ES集群中的节点,支持处理两类通信平面,见文档

  • 集群内节点之间的通信,官方文档称之为transport layer。
  • 集群外的通信,处理客户端下发的请求,比如数据的CRUD,检索等,官方文档称之为HTTP layer。

通过集群内节点的通信,节点可以获取到集群内所有节点的信息,比如通信地址、健康状态、承载的索引和shard等信息。

当集群中某节点处理客户端下发的请求时,可以将业务请求转发至数据相关的节点,处理业务请求。

接收到客户端下发的请求的节点,依据官方文档,可以称之为接入节点或者the coordinating node。默认情况下,集群中所有的节点都可以接入客户端的业务,因此都具备接入节点的角色。

作为接入节点,处理业务请求的过程可以划分为如下阶段:

  • 转发阶段即scatter phase
    • 接入节点分析业务请求,获取索引和shard的归属节点。
    • 接入节点将请求转发至归属节点。
    • 归属节点处理请求,将处理结果返回至接入节点。
  • 收集阶段即gather phase
    • 接入节点处理各归属节点返回的数据。
    • 接入节点将数据组装为最终的结果。
    • 接入节点将结果返回客户端。

因此,作为接入节点,需要具备足够的硬件资源,比如CPU、内存等,否则无法正常处理各归属节点返回的数据。

ES节点,简单而言,可以理解为ES进程,比如一台主机上运行一个ES进程,或者在一台物理主机上,运行多个ES进程。对于前述ES进程,均可以理解为不同的ES节点。

在ES集群中,存在多种角色或者职责,因此从分工或者职责唯一的角度,可以为节点指定其角色,限定其职责,专业化分工,提升集群的可用性。

ES集群中,通常包含如下角色:

  • master
  • data
  • data_content
  • data_hot
  • data_warm
  • data_cold
  • data_frozen
  • ingest
  • ml
  • remote_cluster_client
  • transform

在ES的配置文件elasticsearch.yml中增加配置项node.roles,可以指定该节点的角色。配置样例,如下:

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

对于专职的接入节点,可以做如下配置:

yaml 复制代码
node.roles: [ ]

数据的生命周期、访问频率、重要性、访问数据时的时延、存储成本等存在差异,比如

  • 从生命周期角度讲
    • 有些数据需要长期保留。
    • 有些数据可能使用完毕后即可删除。
  • 从访问频率角度讲
    • 有些数据会被经常访问。
    • 有些数据可能经历一段时间的高频访问之后,访问频率逐步下降。
    • 有些数据可能初期的访问频率不高,但在某些场景下,访问频率可能会突然上升,然后再次下降。
    • 有些数据可能保持低频访问。
    • 有些数据可能基本没有访问,比如归档数据、备份数据。
  • 从重要性角度讲
    • 有些数据是关键数据,需要长期保留,不允许丢失,假如丢失,则需要具备恢复手段。
    • 有些数据虽然重要,但丢失之后重新获取的成本比较低。
    • 有些数据则可有可无,丢失也不影响最终结果。
  • 从访问时延角度讲
    • 应用场景为高带宽、高时延,比如大数据业务。
    • 应用场景为低时延、高OPS,比如检索业务。
  • 从存储成本角度讲,按照存储介质来划分
    • 磁带,访问时延大、存储成本低,适用于数据量大,长期归档,访问频率极低的数据。
    • HDD盘,访问时延相对低一些,存储成本相对高一些,存储容量小,适用于归档、备份,访问频率一般的数据。
    • SSD盘,访问时延低,支持的OPS高,存储成本更高,存储容量低,适用于数据量相对不大,但访问频率相对要高一些的数据。
    • 内存,访问时延极低,成本更高,存储容量更低,适用于数据量很小,但访问频率极高的数据。

基于数据的差异,ES提供了如下角色的选项:

  • data_content,适用于高频检索的数据,ES针对这个角色,提供了必要的优化。
  • data_hot,适用于热数据,可以配置比较好的硬件、支撑高速访问的存储介质,保存访问频率高的数据。
  • data_warm,适用于温数据,硬件、介质可以选择成本低一点,保存访问频率相对没有那么高的数据。
  • data_cold,适用于冷数据,硬件、介质可以选择相对更低一点,保存访问频率比较低的数据。
  • data_frozen,适用于极冷数据,选择容量大,成本低的硬件和介质,保存访问频率非常低的数据。

假如很难从业务场景区分数据的差异,则可以直接使用角色data

参考资料

相关推荐
不愿透露姓名的大鹏9 小时前
华为存储新增LUN存储到VMware集群
运维·服务器·华为·vmware·存储
尽兴-10 小时前
Elasticsearch 性能调优指南:写入、检索、聚合与缓存全链路优化
大数据·elasticsearch·缓存·性能优化·es 读写原理
deep_drink12 小时前
1.2、Python 与编程基础:文件处理与常用库
开发语言·python·elasticsearch·llm
切糕师学AI13 小时前
Elasticsearch 深度解析:从核心原理到开发者实战
大数据·elasticsearch·搜索引擎·分布式搜索分析引擎
卖报的大地主15 小时前
Learn Claude Code Agent 开发 | 12、目录级隔离:Git Worktree实现多任务并行无冲突
大数据·git·elasticsearch
weixin_4492900115 小时前
Elasticsearch各版本特性对比
java·大数据·elasticsearch
Elasticsearch15 小时前
LINQ 到 ES|QL:使用 C# 查询 Elasticsearch
elasticsearch
我爱学习好爱好爱17 小时前
Ansible 自动化部署Elasticsearch + Logstash + Kibana实战(基于RockyLinux 9.6)
elasticsearch·自动化·ansible
LiLiYuan.17 小时前
【Elasticsearch扫盲】
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客18 小时前
从判断列表到训练好的 Learning to Rank( LTR )模型
大数据·数据库·人工智能·深度学习·elasticsearch·搜索引擎·全文检索