ElasticSearch是一个开源的分布式,RESTful风格的搜索和数据分析引擎。
集群节点
ES集群由多个节点node组成,通过cluster.name 设置集群名称以区别其它集群,每个节点通过node.name指定节点名称。4种节点
master节点: 配置文件中node.master属性为true就有资格被选为master节点。用于控制整个集群,比如创建或删除索引,管理其它非master节点
data节点:
配置文件中node.data属性为true就有资格被选为master节点。
data节点主要执行数据相关的操作,如文档的CRUD
客户端节点:
配置文件中node.master属性和node.data属性均为false。
该节点不能作为master节点,也不能作为data节点。
主要用于响应客户的请求,把请求转发到其它节点。
部落节点:
配置tribe.*时为一个特殊的客户端,可以连接到多个集群,在其上执行搜索和其它操作。
三节点集群搭建
1 | 配置es的集群名称,默认是elasticsearch, |
另外两个节点,只需更改node.name为对应的值即可。分别启动以后就能成功启动集群
集群
集群状态
命令: /_cluster/health?pretty green:所有主分片和副本分片处于active可用状态。yellow:所有主分片处于active可用,但不是所有副本分片都处于active。
red:不是所有的主要分片都可用。
停止master节点,集群将会重新选举master,并进行分片重新分配。
停止data节点,集群状态转为yellow,一段时间后重新分配节点。
分布式文档
在集群里面保存一个文档,这个文档应该存储在那个节点?随机还是轮询?在ES中,会采用计算的方式确定存储在那个节点: