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

时间:2022-07-25
本文章向大家介绍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个

再次查看

修复成功!