elasticsearch-集群管理

1、集群结构

ES 通常以集群方式工作、以提高搜索性能、容错能力、高可用、实现PB级数据搜索。

相关概念:

(1)结点: ES集群由多台ES服务器组成、每个ES 服务端就是个一个NODE结点

(2)分片:由于硬盘限制,为提高ES处理数据量、将索引进行分片、分片后将其放在不同结点、实现多个服务端共同对外提供索引及搜索服务

(3)副本:将分片备份出来存储在其他服务端,实现高可用

(4)主节点:用于管理集群,如增删节点、一个集群中至少有一个主节点,可有多个,主节点挂了ES 会重新选一主节点

(5)节点转发:每一个节点都知道其他节点的信息,我们可以向任何一个节点发请求,当当前节点分片恰好没有数据时会自动转发给其他节点查询数据

(6)节点角色:节点分为三个角色,使其承担不同功能

       ①主节点(master):用于集群管理、如新增节点、分片分配、索引新增、删除等

       ②数据节点(data): 保存数据分片、服务索引、搜索

       ③客户端节点(client):  仅作为请求客户端存在,复制负载均衡、不保存数据、只做请求转发

(7)节点角色的四种组合方式

       master=true ,data=true : 主节点、数据节点

       master=false,data=ture: 仅做数据节点

       master=true,data=false: 仅做主节点

       master=false,data=false: 客户端节点

2、搭建集群

实现创建一个2结点的集群,每个节点都是master:true ,data:true ,让其自动选举真正的主节点。

结点1:

elasticsearch.yml

# ======================== Elasticsearch Configuration =========================
# ---------------------------------- Cluster -----------------------------------
#集群名称
cluster.name: xuecheng
# ------------------------------------ Node ------------------------------------
#节点名,通常一台物理机就是一个节点
node.name: xc_node-1
node.master: true
node.data: true #即是主节点又是数据及诶单
node.max_local_storage_nodes: 2
node.ingest: true

# ----------------------------------- Paths ------------------------------------
path.data: D:/keil/elasticsearch-6.2.1/data
path.logs: D:/keil/elasticsearch-6.2.1/logs

# ----------------------------------- Memory -----------------------------------
#true锁定ES使用的内存,避免内存与swap分区交换数据
bootstrap.memory_lock: false

# ---------------------------------- Network -----------------------------------
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
# --------------------------------- Discovery ----------------------------------
discovery.zen.minimum_master_nodes: 1
discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300","0.0.0.0:9301"]

# ---------------------------------- Gateway -----------------------------------
http.cors.enabled: true
http.cors.allow-origin: /.*/

节点2:

elasticsearch.yml

# ======================== Elasticsearch Configuration =========================
# ---------------------------------- Cluster -----------------------------------
#集群名称
cluster.name: xuecheng
# ------------------------------------ Node ------------------------------------
#节点名,通常一台物理机就是一个节点
node.name: xc_node-2
node.master: true
node.data: true #即是主节点又是数据节点
node.max_local_storage_nodes: 2
node.ingest: true

# ----------------------------------- Paths ------------------------------------
path.data: D:/keil/elasticsearch-6.2.1/data
path.logs: D:/keil/elasticsearch-6.2.1/logs

# ----------------------------------- Memory -----------------------------------
#true锁定ES使用的内存,避免内存与swap分区交换数据
bootstrap.memory_lock: false

# ---------------------------------- Network -----------------------------------
network.host: 0.0.0.0
http.port: 9201
transport.tcp.port: 9301
# --------------------------------- Discovery ----------------------------------
discovery.zen.minimum_master_nodes: 1
discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300","0.0.0.0:9301"]

# ---------------------------------- Gateway -----------------------------------
http.cors.enabled: true
http.cors.allow-origin: /.*/
原文地址:https://www.cnblogs.com/dehigher/p/10166296.html