【ELK学习-3】-ElasticSearch基础(2)

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#配置es的集群名称,默认是elasticsearch,
#es会自动发现在同一网段下的es,
# 如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
cluster.name: cell ----集群名称
#
# ------------------------------------ Node ------------------------------------
node.name: node_01
node.master: true ----配置是否有资格称为master节点,如果三个节点都配置为true就会通过选举选取master节点。
node.data: true ----配置是否为数据节点
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /var/data/elasticsearch ----数据存放路径
#
# Path to log files:
#
path.logs: /var/log/elasticsearch ----日志存放路径
network.host: 0.0.0.0 -----配置为0.0.0.0时自动绑定本机。
http.port: 9200 -----对外提供服务的端口
transport.tcp.port: 9300 -----配置用于集群节点间通信的端口
transport.tcp.compress: true -----集群节点间通信时进行压缩

discovery.seed_hosts: ["192.168.52.131:9300","192.168.52.132:9300", "192.168.52.133:9300"]
-------集群各节点IP地址,也可以使用es,xxx.com等名称,但是需要配置host

cluster.initial_master_nodes: ["node-1","node-2","node-3"]
--------初始话一个新集群式需要此配置来选举master

另外两个节点,只需更改node.name为对应的值即可。分别启动以后就能成功启动集群

集群

集群状态

命令: /_cluster/health?pretty green:所有主分片和副本分片处于active可用状态。
yellow:所有主分片处于active可用,但不是所有副本分片都处于active。
red:不是所有的主要分片都可用。
停止master节点,集群将会重新选举master,并进行分片重新分配。
停止data节点,集群状态转为yellow,一段时间后重新分配节点。

分布式文档

在集群里面保存一个文档,这个文档应该存储在那个节点?随机还是轮询?
在ES中,会采用计算的方式确定存储在那个节点:

文档写操作

文档搜索

全文搜索