ES集群

集群管理

ES通常以集群方式工作,这样做不仅能够提高 ES的搜索能力还可以处理大数据搜索的能力,同时也增加了系统的容错能力及高可用,ES可以实现PB级数据的搜索。

下图是ES集群结构的示意图:

集群相关概念
节点
ES集群由多个服务器组成,每个服务器即为一个Node节点(该服务只部署了一个ES进程)。

分片
当我们的文档量很大时,由于内存和硬盘的限制,同时也为了提高ES的处理能力、容错能力及高可用能力,我们将索引分成若干分片(可以类比MySQL中的分区来看,一个表分成多个文件),每个分片可以放在不同的服务器,这样就实现了多个服务器共同对外提供索引及搜索服务。
一个搜索请求过来,会分别从各各分片去查询,最后将查询到的数据合并返回给用户。
副本
为了提高ES的高可用同时也为了提高搜索的吞吐量,我们将分片复制一份或多份存储在其它的服务器,这样即使当前的服务器挂掉了,拥有副本的服务器照常可以提供服务。

主节点
一个集群中会有一个或多个主节点,主节点的作用是集群管理,比如增加节点,移除节点等,主节点挂掉后ES会重新选一个主节点.

节点转发
每个节点都知道其它节点的信息,我们可以对任意一个v发起请求,接收请求的节点会转发给其它节点查询数据.
节点的三个角色
主节点
master节点主要用于集群的管理及索引 比如新增节点、分片分配、索引的新增和删除等。
数据节点
data 节点上保存了数据分片,它负责索引和搜索操作。
客户端节点
client 节点仅作为请求客户端存在,client的作用也作为负载均衡器,client 节点不存数据,只是将请求均衡转发到其它节点。

搭建集群



解压 es 为两份

 

配置文件elasticsearch.yml
es1

cluster.name: xuwenxiang
node.name: xwx_node_1
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9301
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300", "0.0.0.0:9301"]
discovery.zen.minimum_master_nodes: 1
node.ingest: true
bootstrap.memory_lock: false
node.max_local_storage_nodes: 2

path.data: D:\安装程序\es集群\es1\elasticsearch-6.2.3\elasticsearch-6.2.3\data
path.logs: D:\安装程序\es集群\es1\elasticsearch-6.2.3\elasticsearch-6.2.3\logs

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

es2

cluster.name: xuwenxiang
node.name: xwx_node_2
network.host: 0.0.0.0
http.port: 9201
transport.tcp.port: 9300
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300", "0.0.0.0:9301"]
discovery.zen.minimum_master_nodes: 1
node.ingest: true
bootstrap.memory_lock: false
node.max_local_storage_nodes: 2

path.data: D:\安装程序\es集群\es2\elasticsearch-6.2.3\elasticsearch-6.2.3\data
path.logs: D:\安装程序\es集群\es2\elasticsearch-6.2.3\elasticsearch-6.2.3\logs

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

报错
with the same id but is a different node instance :具有相同的ID但却是不同的节点实例
删除es文件夹下data文件夹下的节点数据,这种情况可能是直接copy了原来的es包,所以data里的节点数据一样

测试分片


测试主从复制

首先往9200节点插入数据

两个节点都会有数据

集群的健康

通过访问 GET /_cluster/health 来查看Elasticsearch 的集群健康情况。
用三种颜色来展示健康状态: green 、 yellow 或者 red 。

    • green:所有的主分片和副本分片都正常运行。
    • yellow:所有的主分片都正常运行,但有些副本分片运行不正常。
    • red:存在主分片运行不正常。
posted @ 2019-08-08 10:51  xwx唐宋元明清  阅读(186)  评论(0编辑  收藏  举报