green状态:每个索引的primary shard和replica shard都是active状态 yellow : 每个索引的primary shard都是active状态,但是部分replica shard不是active状态,处于不可用状态 red: 不是所有的索引的primary shard都是active状态,部分索引有数据丢失了
我们现在就一台机器,就启动了一个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个
再次查看
修复成功!