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

参考资料

相关推荐
java1234_小锋1 小时前
Elasticsearch是如何实现Master选举的?
大数据·elasticsearch·搜索引擎
梦幻通灵7 小时前
ES分词环境实战
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客7 小时前
Elasticsearch 中的热点以及如何使用 AutoOps 解决它们
大数据·运维·elasticsearch·搜索引擎·全文检索
小黑屋说YYDS12 小时前
ElasticSearch7.x入门教程之索引概念和基础操作(三)
elasticsearch
Java 第一深情15 小时前
Linux上安装单机版ElasticSearch6.8.1
linux·elasticsearch·全文检索
KevinAha1 天前
Elasticsearch 6.8 分析器
elasticsearch
wuxingge1 天前
elasticsearch7.10.2集群部署带认证
运维·elasticsearch
Elastic 中国社区官方博客1 天前
Elasticsearch:如何部署文本嵌入模型并将其用于语义搜索
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索
Dreams°1232 天前
【大数据测试 Elasticsearch 的标准--超详细篇】
大数据·elasticsearch·jenkins
鸠摩智首席音效师2 天前
如何在 Elasticsearch 中配置 SSL / TLS ?
elasticsearch·ssl