原文网址:ElasticSearch--节点的类型_IT利刃出鞘的博客-CSDN博客
简介
说明
本文介绍ES节点的类型。
ES集群是由多个ES实例组成的,一个Elasticsearch实例就是一个node。
节点类型及配置
节点类型 | 配置参数 | 默认值/设置方法 |
候选主节点 | node.master | true |
数据节点 | node.data | true |
摄取节点 | node.ingest | true |
客户端节点 | 无 | 将前三个参数全部设置为false |
部落节点 | tribe:*: | |
协调节点 | 无 | 将前三个参数全部设置为false |
machine learning | node.ml | true(需要enable x-pack) |
粉丝福利:有很多粉丝私信问我有没有Java的面试及PDF书籍等资料,我整理一下,包含:真实面试题汇总、简历模板、PDF书籍、PPT模板等。这些是我自己也在用的资料,面试题是面试官问到我的问题的整理,其他资料也是我自用的,真正实用、靠谱。资料可以从这里免费获取:资料地址
主节点(Master node)
作用
主节点不接受客户端的请求。它的作用如下:
- 控制集群中的操作
- 创建/删除索引
- 决定分片⽚被分配到哪个节点
- 跟踪哪些节点是群集的一部分
- 控制集群的状态
- 处理集群的状态并广播到其他节点,接收其他节点的确认响应
用法
默认情况下任何一个集群中的节点都可能被选为主节点(node.master属性默认为true)。
对于大型的生产集群来说,推荐使用一个专门的主节点来控制集群,该节点将不处理任何用户请求,稳定的主节点对集群的健康是非常重要的。一般部署多个主节点(避免单点问题),主节点数量一般是奇数,比如:3个。
将节点专门作为候选主节点的方法:elasticsearch.yml中的node.master属性设置为true(默认),node.data属性设置为false。
候选主节点(Master Eligible Nodes)
⼀个集群⽀持配置多个 Master Eligible 节点,这些节点在必要时(如 Master 节点出现故障,网络故障时)参与选主流程,成为 Master 节点。
节点默认是 Master eligible 节点(node.master属性默认为true)。可以将某个节点设置为禁止参与选举:设置 node.master: false;
数据节点(Data node)
作用
数据节点的作用如下:
- 存储数据
- 执行数据相关的操作
- 增删改查
- 搜索
- 聚合操作
- ...
用法
节点默认就是数据节点(node.data属性默认为true)。
通过增加数据节点,可以解决数据水平扩展和解决数据单点问题。
数据节点对cpu,内存,io要求较高,在优化的时候需要监控数据节点的状态,当资源不够的时候,需要在集群中添加新的节点。
设置
elasticsearch.yml:node.data: true。
如果要使用一个专门的主节点,就将它禁止作为数据节点,方法是设置elasticsearch.yml: node.data: false。
摄取节点(Ingest Node)
作用
摄取节点是用来对document写入索引文件之前进行预处理的。
可以使用摄取节点对每个document都执行一条ingest pipeline,在document写入索引文件之前,先对其数据进行处理和转化,例如:删除字段,重命名字段,修改字段值等。
用法
默认情况下,所有节点都是Ingest Node(node.ingest属性默认为true)。
如果要执行的ingest操作太过繁重,那么可以规划单独的一批ingest node出来,然后将node.master和node.data都设置为false即可。
客户端节点(Client Node)
作用
客户端节点是既不做候选主节点也不做数据节点的节点,只负责请求的分发、汇总等。若是单独增加这种节点主要是更多地为了提高并发性。
用法
将节点设置为客户端节点的方法:修改elasticsearch.yml,将node.master属性和node.data属性都设置为false。
部落节点(Tribe Node)
作用
部落节点可以跨越多个集群,它可以接收每个集群的状态,然后合并成一个全局集群状态。它可以读写所有节点上的数据。
用法
部落节点在elasticsearch.yml中的配置如下:tribe:*:
协调节点(Coordinating Node)
作用
协调节点处理请求的节点,负责路由请求到正确的节点。集群中任何一个节点都可以是协调节点。
例1:协调节点将创建索引的请求路由到 Master 节点;
例2:节点A接收到用户的查询请求,会把查询语句分发到其他节点,然后合并各个节点返回查询结果,最后将完成的聚合结果返回给用户。这个请求中节点A的扮演的就是协调节点的角色。
用法
可以使某个节点成为专门负责协调的节点:将其他类型(data node/master node/master eligible node)设置成 False。