自己在练习ES的过程中,会经常关闭虚拟机,经常直接退出ES,所以会遇到各种启动失败的问题
每次遇到问题,就去查看log文件,进行排查
通过查看elasticsearch/logs/****.log文件
[ERROR][o.e.g.GatewayMetaState ] [node-02] failed to read or upgrade local state, exiting…
java.io.IOException: failed to find metadata for existing index movie_index [location: 2KBq-ngMS4-eU5OUJ_yQHg, generation: 17]
at org.elasticsearch.gateway.MetaStateService.loadFullState(MetaStateService.java:99) ~[elasticsearch-7.0.1.jar:7.0.1]
at org.elasticsearch.gateway.GatewayMetaState.upgradeMetaData(GatewayMetaState.java:148) [elasticsearch-7.0.1.jar:7.0.1]
at org.elasticsearch.gateway.GatewayMetaState.(GatewayMetaState.java:102) [elasticsearch-7.0.1.jar:7.0.1]
at org.elasticsearch.node.Node.(Node.java:473) [elasticsearch-7.0.1.jar:7.0.1]
at org.elasticsearch.node.Node.(Node.java:251) [elasticsearch-7.0.1.jar:7.0.1]
at org.elasticsearch.bootstrap.Bootstrap$5.(Bootstrap.java:211) [elasticsearch-7.0.1.jar:7.0.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:211) [elasticsearch-7.0.1.jar:7.0.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:325) [elasticsearch-7.0.1.jar:7.0.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) [elasticsearch-7.0.1.jar:7.0.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) [elasticsearch-7.0.1.jar:7.0.1]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) [elasticsearch-7.0.1.jar:7.0.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) [elasticsearch-cli-7.0.1.jar:7.0.1]
at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-cli-7.0.1.jar:7.0.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) [elasticsearch-7.0.1.jar:7.0.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) [elasticsearch-7.0.1.jar:7.0.1]
可以看到报错内容,为读取或更新本地状态失败,查找已存在的movie_index索引的元数据metadata失败
说明,在强制退出的时候,索引和元数据的映射出了问题
因为自己的是测试环境,所以就暴力解决了,找到存放元数据metadata的位置,直接暴力删除
找到ES安装目录下的data目录,然后删除目录下的nodes文件夹
再重启ES即可
如果是生产环境的话,就要去深究元数据metadata的映射问题了,这里因为没有深究,所以暂时就不讨论了。。。