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

参考资料

相关推荐
光仔December21 分钟前
【Elasticsearch入门到落地】18、Elasticsearch实战:Java API详解高亮、排序与分页
java·elasticsearch·es排序·es分页·es高亮
月屯4 小时前
es大页读取
大数据·elasticsearch·搜索引擎
努力的小郑16 小时前
与产品经理的“模糊”对决:Elasticsearch实现MySQL LIKE '%xxx%' 的奇幻之旅
后端·elasticsearch·搜索引擎
秋已杰爱1 天前
技术准备十五:Elasticsearch
大数据·elasticsearch·搜索引擎
starandsea2 天前
gitlab解决传过大文件后删除导致pack过大问题
大数据·elasticsearch·gitlab
大海绵啤酒肚2 天前
EL(F)K日志分析系统
运维·elasticsearch·云计算
Elasticsearch2 天前
如何在 AWS EC2 上安装和配置 Elasticsearch
elasticsearch
Elasticsearch2 天前
Elastic AI agent builder 介绍(二)
elasticsearch
维尔切2 天前
ELK日志系统部署与使用(Elasticsearch、Logstash、Kibana)
elk·elasticsearch·jenkins·kibana·logstash
帅帅梓3 天前
ELK es+logstash
大数据·elk·elasticsearch