• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

ES集群各节点角色功能简介

武飞扬头像
过悟
帮助1

学新通

ES集群中各节点角色功能简介

本博客根据ES 7.15 ,介绍ES中各节点角色功能。集群节点角色可以在配置文件elasticsearch.yml中通过node.roles配置,如果配置了节点角色,那么该节点将只会执行配置的角色功能;如果不配置,该节点将会执行以下角色功能:

master # 主节点
data # 通用数据节点
data_content # 数据目录节点
data_hot # 热点数据节点
data_warm # 中温数据节点
data_cold # 冷数据节点
data_frozen # 封存数据节点
ingest # 数据摄入节点
ml # 机器学习节点
remote_cluster_client # 远程候选节点
transform # 转换节点

注意

  1. 如果私自配置节点信息,请确保集群配置有master角色的节点和data角色的节点
  2. 如果有较大的机器学习(machine learning)任务或转换(transform)任务,建议将候选的主节点(Master-eligible node)与数据节点(data node)、机器学习节点(machine learning node)和转换节点(transforming node)分开是很有必要的。
  3. 每个节点都默认为协调节点(Coordinating node),如果node.roles设置为[]那么该节点将只执行协调节点功能。

候选主节点(Master-eligible node)

候选主节点不仅有选举权还有被选举权;每个节点主要负责索引创建、索引删除、追踪节点信息和决定分片分配节点等。

配置候选主节点

node.roles: [ master ]

配置只有选举权的节点

该节点相较于master节点,需要更少的堆内存和低配的cpu

node.roles: [ master, voting_only ]

注意

master, voting_only两个必须一起使用

数据节点

数据节点负责存储文档数据和数据的CRUD操作。因此该节点是CPU和IO密集型,需要实时监控该节点资源信息,以免过载。将节点设置为数据节点方式为,在elasticsearch.yml中添加如下内容:

node.roles: [ data ]

目前数据存储节点是多层架构,节点可被指定特定一层或特定多层,每层分别为:data_content,data_hot,`data_warm,data_cold,data_frozen。每个节点要么选择单个层级或多个层级,要么设置为data切记不可即设置为data,也设置为data_ (这里的表示content、hot等),下面将对每个层进行详细介绍。

目录数据节点(Content data node)

目录节点负责存储常量数据,且不随着时间的推移,改变数据的温层(hot、warm、cold)。且该节点的查询优先级是高于其它IO操作,所以该节点search和aggregations都会较快一些。系统索引和非数据流索引都存储在该节点。设置方法,如下

node.roles: [ data_content ]

热点数据节点(Hot data node)

热数据节点是时序数据的重要入口,用于存储最近频繁搜索和修改的时序数据;热数据节点必须具有快速的读写能力,最好是SSD。设置方法,如下

node.roles: [ data_hot ]

中温数据节点(Warm data node)

当时序数据访问频率下降,可以将其移动到中温节点,中温节点用于存储修改较少,但任然有查询的数据。查询的频率肯定比热点节点要少。设置方法,如下

node.roles: [ data_warm ]

冷数据节点(Cold data node)

当时序数据不再更新,那么可以将该数据移动到冷数据节点;冷数据节点用于存储只读,且访问频率较低的数据。该节点机器性能可以低一点。设置方法,如下

node.roles: [ data_cold ]

封存数据节点(Frozen data node)

当数据很少查询,可以将数据从cold移动到Fronzen节点;封存数节点可以使用部分挂载方法查询备份索引,去数据仓库拉取数据到本地,这个本地存储在封存各节点是公用的,即多个封存节点只会加载一份这个数据到本地!设置方法,如下

node.roles: [ data_frozen ]

数据摄入节点(Ingest node)

该节点将只用于执行预处理管道,设置方法如下

node.roles: [ ingest ]

协调节点(Coordinating only node)

协调节点主要负责根据集群状态路由分发搜索,路由分发bulk操作。此外每个节点都是自带协调节点功能,如果该节点只作为协调节点,设置方法,如下

node.roles: [ ]

注意

协调节点对于大集群,将有益于降低主节点和数据节点负担。但是添加过多的协调节点,将增加整个集群负担(因为需要将集群状态同步到每个协调节点)。

远程候选节点(Remote-eligible node)

远程候选节点可以作为远程集群的客户端,主要负责搜索远程集群数据和同步两个集群间数据。设置方法,如下

node.roles: [ remote_cluster_client ]

机器学习节点(Machine learning node)

机器学习节点负责处理机器学习相关请求。设置方法,如下

node.roles: [ ml]

注意

如果想在ml节点中访问远程集群,则必须在ml节点的roles中添加remote_cluster_client角色;如果启动异常探查任务,则必须在master-eligible的节点中配置remote_cluster_client。

转换节点(Transform node)

转换节点会进行一种特殊操作,通过特定聚集语句计算,然后将结果写到新的索引中。如果需要使用远成集群数据,请务必在转换节点中添加remote_cluster_client;转换节点设置方法,如下

node.roles: [ transform ]

改变节点角色

数据节点会保存以下信息到磁盘:

  • 该节点保存的分片信息
  • 每个索引在该节点的分片信息
  • 集群的元信息,包括设置和索引模板

主节点会保存以下信息到磁盘:

  • 索引元数据信息
  • 集群的元数据,包括设置和索引模板

注意

  • 如果data.path如果存在数据,且该节点不是data节点会启动失败

  • 如果具有data角色和master角色节点没有索引元数据信息存在,也会启动失败

  • 修改角色之前请使用 allocation fill将数据移走,操作方法如下(10.0.0.1就是想操作的节点ip):

    PUT _cluster/settings
    {
      "transient" : {
        "cluster.routing.allocation.exclude._ip" : "10.0.0.1"
      }
    }
    

    \

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanheeijbj
系列文章
更多 icon
同类精品
更多 icon
继续加载