Elasticsearch启动后自动退出

自己在练习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.<init>(GatewayMetaState.java:102) [elasticsearch-7.0.1.jar:7.0.1]
        at org.elasticsearch.node.Node.<init>(Node.java:473) [elasticsearch-7.0.1.jar:7.0.1]
        at org.elasticsearch.node.Node.<init>(Node.java:251) [elasticsearch-7.0.1.jar:7.0.1]
        at org.elasticsearch.bootstrap.Bootstrap$5.<init>(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的映射问题了,这里因为没有深究,所以暂时就不讨论了。。。

### Elasticsearch 意外退出的原因分析与解决方案 #### 一、原因分析 Elasticsearch意外退出可能由多种因素引起,其中包括但不限于硬件资源不足、配置不当以及外部依赖服务异常。 当遇到`Request Entity Too Large`错误时,这表明Graylog向Elasticsearch发送的数据量超出了后者设定的最大阈值[^1]。这种情况可能导致节点过载进而触发自我保护机制而关闭。另外,在启动过程中如果命令执行不正确也可能引发一系列连锁反应最终造成程序崩溃[^2]。除此之外,任何影响到JVM运行环境稳定性的状况都可能是潜在诱因之一;比如内存泄漏、垃圾回收频率过高或者是磁盘空间耗尽等问题都会间接导致此类现象的发生。 对于日志排查而言,界面中的第3部分显示的是应用程序产生的实际记录信息[^3],这些原始数据包含了大量关于系统内部状态变化的重要线索,因此成为诊断问题的关键依据所在。 #### 二、解决方案 针对上述提到的各种可能性,可以采取如下措施来进行修复: - **调整参数设置**:适当增大`http.max_content_length`的数值以适应更大的批量索引请求尺寸,从而避免因为单次传输过多数据而导致的服务中断情况发生。 - **优化查询逻辑**:减少不必要的复杂条件组合或是分批次处理大批量文档操作,以此减轻服务器端的压力并提高整体性能表现。 - **监控健康指标**:定期查看集群内各个实例的工作负载水平及其发展趋势,及时发现那些接近极限边缘的组件以便提前做出应对策略规划。 - **增强基础设施建设**:确保有足够的物理计算资源可供分配给Elasticsearch使用,并且保持良好的散热通风条件防止温度过高损坏设备硬件设施。 - **完善重启恢复流程**:制定一套完整的应急预案体系,一旦检测到进程非正常终止能够迅速按照既定步骤完成自动重连上线工作而不至于长时间离线失去服务能力。 ```bash # 修改elasticsearch.yml文件增加最大内容长度限制 cluster.name: my-application node.name: node-1 path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch network.host: 0.0.0.0 http.max_content_length: 50gb # 根据实际情况调整此值大小 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值