目录
一、集群(Cluster)和节点(node)概念
1、集群
一个ES实例称为一个节点,一个或者多个节点组成集群。
ES的主要思想是去中心化,即虽然内部会选举一个主节点,负责管理集群的变更(包括新建/删除索引,新增/移除节点等),但是从外部看,与任何一个节点通信均能实现与ES集群通信的功能,并且内部任何节点均能成为主节点,每个节点均能实现ES搜索相关的功能。
2、节点客户端(Node client)
节点客户端作为一个非数据节点加入到本地集群中。换句话说,它本身不保存任何数据,但是它知道数据在集群中的哪个节点中,并且可以把请求转发到正确的节点。
node.name: node-1
3、传输客户端(Transport client)
轻量级的传输客户端可以将请求发送到远程集群。它本身不加入集群,但是它可以将请求转发到集群中的一个节点上。
transport.tcp.port: 9300
4、通信说明
两个 Java 客户端都是通过 9300 端口并使用 Elasticsearch 的原生 传输 协议和集群交互。集群中的节点通过端口 9300 彼此通信。如果这个端口没有打开,节点将无法形成一个集群。
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301"]
二、集群健康值
1)灰色:未连接;
2)绿色:集群健康,分片可用,副本可用;
2)黄色:分片可用,副本不可用;
2)红色:分片不可用,副本不可用,严重,需要立刻处理;
三、Unassign问题及处理
1、问题原因
Elasticsearch初始化时只部署了单节点集群,但是在创建索引时默认设置为5个分片,1个副本,因此创建索引后由于没有办法分配副本,副本分片没有处于正常的状态,此时分片与副本处于同一个节点下面,一旦节点down 掉,副本与分片全部失效,没有起到故障转移的作用,此时系统处于黄色的不健康状态。
2、解决方式
在单节点的elasticsearch集群,将索引的副本重置为0,此时集群状态为绿色健康。
put ip:端口/my_index/_settings
{