elastic search 如何将yellow 状态变为green健康状态

背景原理

green状态:每个索引的primary shard和replica shard都是active状态
yellow : 每个索引的primary shard都是active状态,但是部分replica shard不是active状态,处于不可用状态
red: 不是所有的索引的primary shard都是active状态,部分索引有数据丢失了

为什么现在处于一个yellow状态

我们现在就一台机器,就启动了一个es进程。相当于就起了一个节点,由于默认的配置是每个index分配5个primary shard和1 个replica shard,而且primary shard和replica shard不能在一个机器上(为了容错)。所以,现在的replica shard没法被分配

在这里插入图片描述

ps -ef | grep ela

后发现只有一个进程
在这里插入图片描述
此时,我们再启动一个进程,观察下
在这里插入图片描述
果然:
在这里插入图片描述

我们需要释放一点内存来启动
通过top查看现在最占内存的应用:
在这里插入图片描述
我们去看看1330这个进程

ps -ef |grep 1330

发现是之前测试的一个高版本的es进程,果断干掉
在这里插入图片描述
再次查看内存后ok
在这里插入图片描述

再次尝试启动es 5.4
报错如下:
在这里插入图片描述

应该是配置最大节点数目为1了,日志说的也比较明显了

因为默认配置的1,我们一般也只在一台机子上部署一个节点,不过我们开发环境为了演示变为green,这里配置下为2

配置如下:
在这里插入图片描述

这次启动没上面这个问题了
不过我们忘了改端口在这里插入图片描述

注意,ES的配置文件必须使用elasticsearch.yml这个命名,因此必须创建出两个目录来。所以,我这里copy一份配置,重新建立一个目录进行操作,并配置如下:

把默认的端口改掉

在这里插入图片描述
修改日志位置:
在这里插入图片描述

修改节点名:
在这里插入图片描述

重新启动成功

在这里插入图片描述

再次查看es的状态

在这里插入图片描述
任然是yellow,查看节点2 的日志:
在这里插入图片描述
意思是不能组成一个集群。最后查看相关文献,删除掉从master复制来的data目录下的nodes节点内容,启动ok!
节点02 加入集群:

在这里插入图片描述
在这里插入图片描述

之前的这个索引已经有一个replica分配过来了
在这里插入图片描述

因为我这边之前程序创建索引没指定个数,默认是1个主分片,5个副本
通过查看索引setting配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

所以,我这里手动将副本改为1个
在这里插入图片描述
再次查看在这里插入图片描述

在这里插入图片描述
修复成功!
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章