环境
虚拟机:centos7
操作系统:win7
elasticsearch:5.4.3
node
任何时候 你要启动一个elasticsearch
实例,你得先启动一个节点。
连接节点的集合叫做集群。如果你运行一个节点,那么你将拥有一个单节点集群。
集群中的每个节点都可以在默认的情况下处理HTTP
和传输流量。
传输层是专门为Java 传输客户端(TransportClient)
和节点进行通信的。
HTTP层仅用于外部的REST
客户端使用,如浏览器。
所有节点都知道集群中的所有其他节点,并且可以将客户端的请求转发给适当的节点。除此之外,每个节点提供一个或多个目的:
①Master-eligible node:
一个节点将node.master
设置为true
(默认),其就有资格被选举为主节点来控制集群。
②Data node
一个节点其node.data
设置为true
(默认),数据节点保存数据和执行数据相关的操作,如:增删改查、搜索和聚合。
③Ingest node
一个节点其node.ingest
设置为true
(默认)。Ingest node
能够对文档应用Ingest pipeline
以便于在索引之前转换和丰富文档。加载大量的Ingest
,使用专门的ingest
节点是有意义的并且把主节点和数据节点的node.ingest
设置为false。
④Tribe node
一个tribe node
节点,通过tribe.*
来配置的,是一种特殊类型的协调唯一节点,它可以连接多个集群,并在所有连接的集群上执行搜索和其他操作。
默认情况下,一个节点是一个master-eligible
节点和一个数据节点,并且它可以通过ingest pipelines
预处理文档。这对于小的集群很方便,但是随着集群的增长,考虑从专门的数据节点中分离专门的master-eligible
节点变得非常重要。
注意
协调节点
像搜索请求或批量索引请求可能涉及到不同节点上的数据。例如:一个搜索请求,在两个阶段(接受客户端请求和协调节点)中执行通过节点来协调。
在scatter
阶段,协调节点转发请求给保存有数据的数据节点。每个数据节点在本地执行请求并把结果返回给协调节点。在gather
阶段,协调节点会归约每个数据节点的结果到一个全局结果集中。每个节点都是一个隐式的协调节点。这意味着一个节点其
node.master
、node.data
和node.ingest
都设置为false
。那么它将只能充当协调节点,这个(成为协调节点)无法禁止。因此,这样的节点需要有足够的内存和CPU
来处理gather
阶段。