1、 java.io.IOException: failed to find metadata for existing index XXX
场景描述:
在节点启动的时候,有时会出现这类问题,导致节点重启失败。出现这种情况多是因为状态为Close的索引引起的
处理方法:
进入当前节点的data目录: /esdata/nodes/0/_state
将 manifest开头的文件 删除或重命名
再启动该节点就可以了,启动成功后该 manifest文件会自动生成。
2、 failed to create shard, failure IOException[failed to obtain in-memory shard lock]; nested: ShardLockObtainFailedException[[test-test][3]: obtaining shard lock timed out after 5000ms];
场景描述:
集团出现分片无法重新分配,分析原因发现示上述描述,从字面上的意思来看是当前分片被锁定,导致无法分配
当时集群出现这类问题时:该索引没有副本,导致集群状态为红色的,使用 POST /_cluster/reroute?retry_failed=true 无法恢复。
解决方法:
第一种:
首先将 将自动分片的配置关闭,通过 GET _cluster/allocation/explain 获取无法分配的分片所对应的主机信息
杀掉当前节点,重新启动节点
使用POST /_cluster/reroute?retry_failed=true 恢复 (本集群经验证可以)
第二种:
将索引关闭,再打开(网上百度的) (由于当前索引再用,无法关闭,没有验证该方法,大家可以试试)
3、 kernel: INFO: task kthreadd:2 blocked for more than 120 seconds.
kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
场景描述:
elasticsearch版本是6.3.0,linux版本是7.2,文件系统采用的xfs: 现象是:ES节点 主机频繁夯死,ES集群状态异常。必须重启主机才能正常使用。
查看系统日志信息,发现大量的xfs日志信息。
解决方法:
新建集群存储采用的ext4格式后,就没有出现过类似的情况。估计与xfs文件系统有关系。
今天就写到这吧,以后发现新的情况再补充