Docker直接删除elasticsearch报错:Failed to obtain node locks
报错内容
[root@localhost /]# docker logs -f elasticsearch
Caused by: java.lang.IllegalStateException: failed to obtain node locks, tried [[/app/elasticsearch-7.4.2/data]] with lock id [0]; maybe these locations are not writable or multiple nodes were started without increasing [node.max_local_storage_nodes] (was [1])?
情景描述
启动 elasticsearch 时,出现了 [failed to obtain node locks] 报错
解决一:杀进程,如果node.lock被其他进程使用了。
查看node.lock有没有被使用
[root@localhost /]# lsof ./es/data/nodes/0/node.lock
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 30008 rhlog 55wW REG 253,4 0 16777332 ./data/nodes/0/node.lock
先查看es的进程,然后杀掉。具体如下:文章来源:https://www.toymoban.com/news/detail-567637.html
1、查进程
[root@localhost /]# ps -ef | grep elastic
2、杀进程
[root@localhost /]# kill -9 `ps -ef | grep elastic |awk '{print $2}'`
解决二:杀掉elasticsearch进程
ps aux | grep elasticsearch
kill -9 [pid]
这里,我想强调一下,在使用上面的解决方案前,可以先确认下node.lock是否被某个进程占用,命令如下
lsof node.lock
如果被占用,会显示出占用的进程。
解决三:直接进入data文件删除node.lock(我的最终解决方案)
直接进入之前的_data文件删除被锁定的node,在重新run新的docker容器即可文章来源地址https://www.toymoban.com/news/detail-567637.html
到了这里,关于Docker直接删除elasticsearch报错:Failed to obtain node locks的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!