首页 > 其他分享 >Elasticsearch 节点角色配置

Elasticsearch 节点角色配置

时间:2024-03-07 11:11:06浏览次数:24  
标签:node roles 角色 索引 集群 Elasticsearch 数据 节点

节点角色

在 Elasticsearch 7.x 中,节点角色标识了一个节点在集群中扮演的角色,不同的角色代表着节点具备不同的功能和责任。默认情况下,一个节点的角色为cdhilmrstw,即拥有所有角色。

各角色含义为:

  • C: Coordinator(协调节点) - 该节点负责协调集群中的请求,并将请求路由到数据节点上,作为一个智能的负载均衡器。它不保存数据,但是负责处理搜索请求和聚合请求。每个节点都是一个协调节点,无需显式配置。
  • D: Data(数据节点) - 该节点存储数据,执行数据相关的操作,比如索引和搜索。大多数情况下,数据节点是集群中最常见的节点类型。
  • H: Hot(热节点) - 该节点专门用于存储最活跃的数据,通常用于存储最频繁访问的数据,以提高性能。
  • I: Ingest(预处理节点) - 该节点负责在数据索引之前对数据进行预处理,比如数据的转换、提取、规范化等操作。
  • L: Machine Learning(机器学习节点) - 该节点负责执行与机器学习相关的任务,比如创建、管理和运行机器学习作业。
  • M: Master(主节点) - 该节点负责集群管理任务,比如维护集群状态、进行节点的加入和移除、进行主节点的选举等。
  • R: Remote Cluster Client(远程集群客户端) - 该节点充当远程集群的客户端,用于与其他集群进行交互。
  • S: Snapshot(快照节点) - 该节点负责执行快照和恢复相关的任务,比如对索引进行快照备份和恢复。
  • T: Transform(转换节点) - 该节点负责执行数据转换任务,比如对数据进行聚合、转换和汇总。
  • W: Machine Learning Data(机器学习数据节点) - 该节点存储与机器学习相关的数据。

主节点

主节点负责轻量级集群范围的操作,如创建或删除索引、跟踪集群节点状态以及决定将索引分片分配给哪些节点,对服务器配置要求不高。拥有一个稳定的主节点对于集群运行状况非常重要。

如果选定的主节点被其他任务过载,则集群可能无法正常运行。特别是索引和搜索数据可能会占用大量资源(数据节点),因此在大型或高吞吐量集群中,最好避免将符合条件的主节点用于索引和搜索等任务。

候选主节点

参与主节点选举投票,并作为主节点候选节点

node.roles: [ master]

只投票主节点

只参与主节点选举投票,但不作为主节点候选。

node.roles: [ master, voting_only]

一个高可用集群中,至少需要三个主节点,并且其中至少两个不是仅投票主节点。

可以和数据节点、协调节点结合使用

node.roles: [ data, master, voting_only]

数据节点

数据节点保存包含已索引文档的索引分片。数据节点负责处理与数据相关的操作,如CRUD、搜索和聚合。这些操作是I/O密集型、内存密集型和CPU密集型的,需要配置较好的服务器。数据节点应与主节点分离,避免数据节点负载过重时,主节点不响应。

一个简单的数据节点

node.roles: [ data]

数据分层

数据节点可以根据集群配置、服务器资源来进行分层,划分为hot、warm、cold三个层次,然后配合index alloc filter将索引数据分配在不同数据节点上。

hot节点

node.roles: [data_hot, date_content]

warm节点

node.roles: [data_warm, date_content]

cold节点

node.roles: [data_cold, date_content]

预处理节点

预处理节点可以执行由一个或多个预处理器组成的预处理管道,在数据索引之前对数据进行预处理,比如数据的转换、提取、规范化等操作。一个具体的例子是,filebeat采集日志后,输出到Elasticsearch集群中的Ingest节点,Ingest节点中使用grok对日志进行预处理。

预处理节点

node.roles: [ ingest ]

只协调节点

只协调节点可以通过将协调节点角色从数据和候选主节点中分离出来,从而使大型集群受益。与其他节点一样,它们加入集群并接收完整的集群状态,并使用集群状态将请求直接路由到适当的位置。

专用的协调节点:

node.roles: [ ]

参考文档

https://www.elastic.co/guide/en/elasticsearch/reference/7.10/modules-node.html

标签:node,roles,角色,索引,集群,Elasticsearch,数据,节点
From: https://www.cnblogs.com/cd-along/p/18058473

相关文章

  • Elasticsearch 集群网络配置实例
    网络配置在elasticsearch中,客户端通过http与es进行通信;es集群节点间主要通过transport进行通信。在不同的网络环境下,需要进行相应的网络配置调整。简单网络环境单网卡假设只有一个网络接口A,IP地址为176.33.2.101、http通信端口9200、transport通信端口9300。#监听的IPnetw......
  • elasticsearch常用操作
    POST/index{i}/_close//对索引进行关闭操作GET/_cluster/settings?include_defaults=true//查看集群的默认配置信息GET/_cluster/health//轮询等待集群恢复green状态查看集群的健康状态GET/_cat/indices//查看所有的索引信息GET/索引名称/_stats//查看单个索引的信......
  • Elasticsearch集群生产配置
    集群配置在组建集群时,需要额外添加集群相关的配置,如节点角色、集群发现、初始主节点、主节点选举和安全认证等,以下配置均在上篇创建Elasticsearch单机实例的基础上搭建。设置集群名称vielasticsearch.yml#统一集群名字cluster.name:my-application#移除该配置discover......
  • Docker启动单机elasticsearch生产配置
    宿主机目录挂载在docker容器中运行elasticsearch时,需要进行配置、插件、日志和数据文件的挂载。创建挂载文件切换es用户sues01创建es本地目录cd/data&&mkdires_node1在es_node1下面创建配置、日志、数据目录cd/data/es_node1&&mkdirlogsdataconfigplugins基......
  • 解决datepicker设置限定日期范围后 选中节点日期不生效
    问题描述:项目要求设定日期限定范围,如2023-04-01至2024-03-01,其它不可选 但每当我选择的月份包含4月或次年3月时,即使选中日期,弹窗也不消失经过我机智过人的大脑”短暂“思考后,发现当我设定限定范围时,是这样设置的returntime.getTime()<newDate("2023-04-01").getTime()......
  • Elasticsearch 本地单机生产配置
    本地安装创建启动用户elasticsearch不能由root用户启动安全性:以root用户身份启动Elasticsearch会增加系统受到攻击的风险。Elasticsearch的进程可能会受到来自外部的恶意攻击,如果以root用户身份启动,攻击者可能会获取到root权限,从而对系统造成严重的损害。最小权限原则:根据最......
  • springboot 应用程序 pom节点版本冲突问题解决思路
    springboot应用程序pom节点版本冲突问题解决思路一、首先 mavenhelper 查看是否有冲突 conflicts 二、allDenpendencies  查询如poi 查询冲突 ps: <scope>compile</scope>  compile:这是默认的依赖项范围。指定为compile的依赖项将在编译、测试和......
  • elasticsearch知识点总结
    主要记录疑惑点和容易混淆的地方type和fields区别type是废弃功能,为了简化数据模型和提高性能,不再使用,底层的lucene无此概念。详见https://www.ddkk.com/zhuanlan/search/elasticsearch/1/12.htmlfiels跟type不是一个维度的东西,fiels是字段(term)的属性,主要用来定义一个字段不同......
  • Unreal配置围绕角色旋转的相机(备忘)
    先来gif展示效果:我的蓝图结构如下:因为我的角色有多个相机,首先将我要默认使用的相机FollowCamera的AutoActivate勾选上(在搜索过滤栏输入act就可以很快速地过滤出来),同时记住将其他相机的AutoActivate的勾选取消;选中BP_StackBot(self),也就是蓝图的头层(根节点),在搜索过滤栏......
  • 222. 完全二叉树的节点个数c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/intcountNodes(structTreeNode*root){if(!root)return0;if(!root->left&&!root->......