elasticsearch - 弹性搜索节点之一继续进入错误状态
问题描述
我正在尝试运行 2 个节点的弹性搜索集群,但其中一个节点一直处于错误状态,而另一个节点工作正常。以下是日志
Kubernetes version 1.16.1
elasticsearch version elasticsearch-oss:6.4.3
es-cluster-0 1/1 Running 0 66s
es-cluster-1 0/1 Error 2 66s
[ERROR][o.e.g.GatewayMetaState ] [es-cluster-1] failed to read local state, exiting...
org.elasticsearch.ElasticsearchException: java.io.IOException: failed to read [id:3, file:/usr/share/elasticsearch/data/nodes/0/indices/00hAD3unTn-m80CsNnk5YA/_state/state-3.st]
at org.elasticsearch.ExceptionsHelper.maybeThrowRuntimeAndSuppress(ExceptionsHelper.java:200) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.gateway.MetaDataStateFormat.loadLatestState(MetaDataStateFormat.java:304) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.gateway.MetaStateService.loadFullState(MetaStateService.java:64) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.gateway.GatewayMetaState.<init>(GatewayMetaState.java:86) [elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.node.Node.<init>(Node.java:447) [elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.node.Node.<init>(Node.java:256) [elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:213) [elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:213) [elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326) [elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) [elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) [elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) [elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) [elasticsearch-cli-6.4.3.jar:6.4.3]
at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-cli-6.4.3.jar:6.4.3]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) [elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) [elasticsearch-6.4.3.jar:6.4.3]
Caused by: java.io.IOException: failed to read [id:3, file:/usr/share/elasticsearch/data/nodes/0/indices/00hAD3unTn-m80CsNnk5YA/_state/state-3.st]
at org.elasticsearch.gateway.MetaDataStateFormat.loadLatestState(MetaDataStateFormat.java:298) ~[elasticsearch-6.4.3.jar:6.4.3]
... 14 more
Caused by: java.lang.IllegalArgumentException: Unexpected field [mapping_version]
at org.elasticsearch.cluster.metadata.IndexMetaData$Builder.fromXContent(IndexMetaData.java:1324) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.cluster.metadata.IndexMetaData$2.fromXContent(IndexMetaData.java:1372) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.cluster.metadata.IndexMetaData$2.fromXContent(IndexMetaData.java:1361) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.gateway.MetaDataStateFormat.read(MetaDataStateFormat.java:196) ~[elasticsearch-6.4.3.jar:6.4.3]
at org.elasticsearch.gateway.MetaDataStateFormat.loadLatestState(MetaDataStateFormat.java:294) ~[elasticsearch-6.4.3.jar:6.4.3]
... 14 more
解决方案
该索引是由 Elasticsearch 6.5.0 或更高版本创建或修改的,在此版本中无法读取。这通常是因为您升级了 Elasticsearch,然后又尝试将其降级。降级是不可能的。
最简单的解决方案是继续升级。如果这不可能,您将需要擦除此节点并重新开始,从最近的快照中恢复任何丢失的数据。
推荐阅读
- git - 拉取请求显示“git --diff ...”命令?
- angular - 角度警告:不推荐使用 swal
- python-3.x - Python:将单个值分配给while循环中收到的输入
- substrate - 货物构建节点模板基板时出错
- python - 为什么 Pycharm 在启动不使用套接字的项目时显示 socket.io 错误?
- c# - 使用排序规则在 MongoDB C# 中搜索包含不区分大小写的文本的字段
- c - 如何找到c中三个数字中的最大值?
- eslint - 我可以按照我喜欢的方式设置 ESLint 的缩进验证吗?
- azure - 监视 Azure Blob 容器文件
- php - 从数据库中存储值以供以后在 php 中使用