java.lang.IllegalStateException: failed to obtain node locks, tried [/usr/share/elasticsearch/data]; maybe these locations are not writable or multiple nodes were started on the same data path?at org.elasticsearch.server@8.14.2/org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:293) at org.elasticsearch.server@8.14.2/org.elasticsearch.node.NodeConstruction.validateSettings(NodeConstruction.java:509) at org.elasticsearch.server@8.14.2/org.elasticsearch.node.NodeConstruction.prepareConstruction(NodeConstruction.java:256) at org.elasticsearch.server@8.14.2/org.elasticsearch.node.Node.<init>(Node.java:192) at org.elasticsearch.server@8.14.2/org.elasticsearch.bootstrap.Elasticsearch$2.<init>(Elasticsearch.java:240) at org.elasticsearch.server@8.14.2/org.elasticsearch.bootstrap.Elasticsearch.initPhase3(Elasticsearch.java:240) at org.elasticsearch.server@8.14.2/org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:75)\nCaused by: java.io.IOException: failed to obtain lock on /usr/share/elasticsearch/data at org.elasticsearch.server@8.14.2/org.elasticsearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:238) at org.elasticsearch.server@8.14.2/org.elasticsearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:206) at org.elasticsearch.server@8.14.2/org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:285) ... 6 more\nCaused by: java.nio.file.NoSuchFileException: /usr/share/elasticsearch/data/node.lock at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) at java.base/sun.nio.fs.UnixPath.toRealPath(UnixPath.java:886) at org.apache.lucene.core@9.10.0/org.apache.lucene.store.NativeFSLockFactory.obtainFSLock(NativeFSLockFactory.java:94) at org.apache.lucene.core@9.10.0/org.apache.lucene.store.FSLockFactory.obtainLock(FSLockFactory.java:43) at org.apache.lucene.core@9.10.0/org.apache.lucene.store.BaseDirectory.obtainLock(BaseDirectory.java:44) at org.elasticsearch.server@8.14.2/org.elasticsearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:231) ... 8 more Suppressed: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/node.lock at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:261) at java.base/java.nio.file.Files.newByteChannel(Files.java:379) at java.base/java.nio.file.Files.createFile(Files.java:657) at org.apache.lucene.core@9.10.0/org.apache.lucene.store.NativeFSLockFactory.obtainFSLock(NativeFSLockFactory.java:84) ... 11 more\n
发现确实权限不足导致
1 2
# 挂载主机目录时需赋予读写权限 chmod -R 777 /data/opt/es_data
启动验证
1 2 3 4
curl -s 'http://localhost:9200'
# 提交请求 _cat/nodes 查看节点是否启动运行 curl -X GET "localhost:9200/_cat/nodes?v=true&pretty"