Elastic Search 7.x 集群配置
概念
Cluster 集群
一个 Elasticsearch 集群由一个或多个节点(Node)组成,每个集群都有一个共同的集群名称作为标识
Node节点
- 一个 Elasticsearch 实例即一个 Node,一台机器可以有多个实例,正常使用下每个实例应该会部署在不同的机器上。 Elasticsearch 的配置文件中可以通过 node.master、 node.data 来设置节点类型
- node.master:表示节点是否具有成为主节点的资格
- true代表的是有资格竞选主节点
- false代表的是没有资格竞选主节点
- node.data:表示节点是否存储数据
- true代表存储数据
- false代表不存储数据
Node节点组合
-
主节点+数据节点(master+data)
// 节点即有成为主节点的资格,又存储数据 node.master: true node.data: true
-
数据节点(data)
// 节点没有成为主节点的资格,不参与选举,只会存储数据 node.master: false node.data: true
-
客户端节点(client)
// 不会成为主节点,也不会存储数据,主要是针对海量请求的时候可以进行负载均衡 node.master: false node.data: false
分片
每个索引有一个或多个分片,每个分片存储不同的数据。分片可分为主分片( primary shard)和复制分(replica shard),复制分片是主分片的拷贝。默认每个主分片有一个复制分片,一个索引的复制分片的数量可以动态地调整,复制分片从不与它的主分片在同一个节点上
集群搭建
步骤
- 拷贝elasticsearch安装包3份,分别命名es-a, es-b,es-c
- 分别修改elasticsearch.yml文件内容(见下)
- 分别启动a ,b ,c 三个节点
- 打开浏览器输入: http://localhost:9200/_cat/health?v ,如果返回的node.total是3,代表集群搭建成功
配置elasticsearch.yml
-
a节点
#集群名称 cluster.name: elasticsearch #节点名称 node.name: node-a #是不是有资格竞选主节点 node.master: true #是否存储数据 node.data: true #最大集群节点数 node.max_local_storage_nodes: 3 #网关地址 network.host: 192.168.11.220 #端口 http.port: 9200 #内部节点之间沟通端口 transport.tcp.port: 9300 #es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点 discovery.seed_hosts: ["192.168.11.220:9300","192.168.11.220:9301","192.168.11.220:9302"] #es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master cluster.initial_master_nodes: ["node-a", "node-b","node-c"] #数据存储路径 path.data: /home/es/software/es/data #日志存储路径 path.logs: /home/es/software/es/logs
-
b节点
#集群名称 cluster.name: elasticsearch #节点名称 node.name: node-b #是不是有资格竞选主节点 node.master: true #是否存储数据 node.data: true #最大集群节点数 node.max_local_storage_nodes: 3 #网关地址 network.host: 192.168.11.220 #端口 http.port: 9201 #内部节点之间沟通端口 transport.tcp.port: 9301 #es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点 discovery.seed_hosts: ["192.168.11.220:9300","192.168.11.220:9301","192.168.11.220:9302"] #es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master cluster.initial_master_nodes: ["node-a", "node-b","node-c"] #数据存储路径 path.data: /home/es/software/es/data #日志存储路径 path.logs: /home/es/software/es/logs
-
c节点
#集群名称 cluster.name: elasticsearch #节点名称 node.name: node-c #是不是有资格竞选主节点 node.master: true #是否存储数据 node.data: true #最大集群节点数 node.max_local_storage_nodes: 3 #网关地址 network.host: 192.168.11.220 #端口 http.port: 9202 #内部节点之间沟通端口 transport.tcp.port: 9302 #es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点 discovery.seed_hosts: ["192.168.11.220:9300","192.168.11.220:9301","192.168.11.220:9302"] #es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master cluster.initial_master_nodes: ["node-a", "node-b","node-c"] #数据存储路径 path.data: /home/es/software/es/data #日志存储路径 path.logs: /home/es/software/es/logs