基本介绍

任何时候我们说启动一个ElasticSearch(简称ES,后续所说的ES就是指ElasticSearch)服务其实就是启动一个ES节点,而不同的节点可以构成一个ES集群,当你启动一个单节点的时候,我们可以认为是启动一个只有一个ES节点的简单集群。

节点,集群, 分片, 索引的关系

引用官网的一张图,下图是一个由3个节点NODE1, NODE2和NODE3构成的集群,每个节点就是一个ES实例,即一个JAVA进程。即集群是由一个或多个节点组成的,而每个节点上可以有1个或多个分片(如下图的P1,P2, P0,R0, R1, R2),其中分片又分为主分片(如P1,P2,P0)和副本分片(R0,R1,R2),而索引是指向一个或者多个物理分片的逻辑命名空间。

es coodination节点 es节点是什么_参数设置

##集群节点类型

节点类型

参数设置

描述

Master-eligible节点

node.roles: [ master ]

具有master角色的节点,可参与master节点的选举,一旦成为master节点即可控制整个集群

Data节点

node.roles: [ data ]

可以保存数据的节点,主要负责存放分片数据

Content data节点

node.roles: [ data_content ]

Ingest节点

node.roles: [ ingest ]

可以看作是数据前置处理转换的节点,支持 pipeline管道 设置,可以使用 ingest 对数据进行过滤、转换等操作,类似于 logstash 中 filter 的作用,功能相当强大。

Transform节点

node.roles: [ transform, remote_cluster_client ]

用于执行Transforms和处理transform API请求

Remote-eligible节点

node.roles: [ remote_cluster_client ]

作为跨集群客户端节点去连接远程的ES集群

Machine learning节点

node.roles: [ ml, remote_cluster_client]

用来执行脚本和处理机器学习相关API请求

Coordinating only节点

node.roles: [ ]

每个node都是一个coordinating node。如果我们的节点不充当其他角色,那么它就是一个纯粹的coordinating node,仅仅用于接收客户端的请求,同时进行请求的转发和合并

节点数据路径设置

Data节点和Master-eligible节点需要知道分片,索引和集群的元数据存放路径,而这个存放这些元数据的路径就是我们所说的节点数据路径,可以通过path.data来指定,默认情况下是$ES_HOME/data。也可以通过修改 elasticsearch.yml文件来设置其他路径,如下:

es coodination节点 es节点是什么_elasticsearch_02


当然我们也可以通过ES节点启动时在命令行启动参数设置,具体如下:

es coodination节点 es节点是什么_elasticsearch_03