ES运行时报错,failed to obtain node locks
这个错误网上有很多解决方案,基本上就是杀掉es进程,事实上,这个问题的原因可能不仅仅是一样的。
“failed to obtain node locks”的原因通常是没有获得这个lock文件的操作权限,我知道的有两个原因:
1、node.lock被其他进程使用了,这也是网上大多数的解释。解决方案呢,首先查看es的进程,然后杀掉。具体如下:
- kill -9 [<font color="#ff0000">pid</font>] #此<font color="#ff0000">pid</font>请按实际修改
复制代码
这里,我想强调一下,在使用上面的解决方案前,可以先确认下node.lock是否被某个进程占用,命令如下
如果被占用,会显示出占用的进程。
2、目录(文件)权限不对
如果登陆时使用root账号,安装ES5以后的版本时需要elasticsearch账号,如果安装过程中不小心,第一次运行ES时,会报错。这时,只要删除data下的node目录,再次运行ES就可以解决。
|