环境

虚拟机: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.masternode.datanode.ingest都设置为false。那么它将只能充当协调节点,这个(成为协调节点)无法禁止。因此,这样的节点需要有足够的内存和CPU来处理gather阶段。