环境:kylin v10
背景:需要bisheng二开商用,故而此处进行本地部署,还有一套bisheng原版2.2
时间:20251229
说明:部署原版2.2.0一套,自有二开产品部署一套
问题:原版启动成功后,二开的elasticsearch启动失败,错误如下:
elasticsearch-1 | [2025-12-29T10:12:06,587][INFO ][o.e.p.PluginsService ] [middleware-node] loaded module [x-pack-eql]
elasticsearch-1 | [2025-12-29T10:12:07,633][ERROR][o.e.b.Elasticsearch ] [middleware-node] fatal exception while booting Elasticsearch java.lang.IllegalStateException: failed to obtain node locks, tried [/bitnami/elasticsearch/data]; maybe these locations are not writable or multiple nodes were started on the same data path?
elasticsearch-1 | at org.elasticsearch.server@8.12.0/org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:296)
elasticsearch-1 | at org.elasticsearch.server@8.12.0/org.elasticsearch.node.NodeConstruction.validateSettings(NodeConstruction.java:484)
elasticsearch-1 | at org.elasticsearch.server@8.12.0/org.elasticsearch.node.NodeConstruction.prepareConstruction(NodeConstruction.java:246)
elasticsearch-1 | at org.elasticsearch.server@8.12.0/org.elasticsearch.node.Node.<init>(Node.java:181)
elasticsearch-1 | at org.elasticsearch.server@8.12.0/org.elasticsearch.bootstrap.Elasticsearch$2.<init>(Elasticsearch.java:236)
elasticsearch-1 | at org.elasticsearch.server@8.12.0/org.elasticsearch.bootstrap.Elasticsearch.initPhase3(Elasticsearch.java:236)
elasticsearch-1 | at org.elasticsearch.server@8.12.0/org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:73)
elasticsearch-1 | Caused by: java.io.IOException: failed to obtain lock on /bitnami/elasticsearch/data
elasticsearch-1 | at org.elasticsearch.server@8.12.0/org.elasticsearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:241)
elasticsearch-1 | at org.elasticsearch.server@8.12.0/org.elasticsearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:209)
elasticsearch-1 | at org.elasticsearch.server@8.12.0/org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:288)
elasticsearch-1 | ... 6 more
elasticsearch-1 | Caused by: java.nio.file.AccessDeniedException: /bitnami/elasticsearch/data/node.lock
elasticsearch-1 | at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
elasticsearch-1 | at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
elasticsearch-1 | at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
elasticsearch-1 | at java.base/sun.nio.fs.UnixFileSystemProvider.newFileChannel(UnixFileSystemProvider.java:181)
elasticsearch-1 | at java.base/java.nio.channels.FileChannel.open(FileChannel.java:298)
elasticsearch-1 | at java.base/java.nio.channels.FileChannel.open(FileChannel.java:357)
elasticsearch-1 | at org.apache.lucene.core@9.9.1/org.apache.lucene.store.NativeFSLockFactory.obtainFSLock(NativeFSLockFactory.java:112)
elasticsearch-1 | at org.apache.lucene.core@9.9.1/org.apache.lucene.store.FSLockFactory.obtainLock(FSLockFactory.java:43)
elasticsearch-1 | at org.apache.lucene.core@9.9.1/org.apache.lucene.store.BaseDirectory.obtainLock(BaseDirectory.java:44)
elasticsearch-1 | at org.elasticsearch.server@8.12.0/org.elasticsearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:234)
elasticsearch-1 | ... 8 more
elasticsearch-1 |
elasticsearch-1 | ERROR: Elasticsearch did not exit normally - check the logs at /opt/bitnami/elasticsearch/logs/middleware-cluster.log
elasticsearch-1 |
elasticsearch-1 | ERROR: Elasticsearch exited unexpectedly, with exit code 1
elasticsearch-1 exited with code 0
一、情况说明
根据需求,需要在该服务器部署两套bisheng,部署时优先部署原版bisheng2.2.0,一丝未改,部署成功;继而部署二开产品,其他镜像启动成功,但是elasticsearch部署失败,错误上述已说明
二、解决方案
不使用root用户即可,compose.yml文件如下:
elasticsearch:
image: docker.1ms.run/bitnami/elasticsearch:8.12.0
environment:
TZ: Asia/Shanghai
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/data/es:/bitnami/elasticsearch/data
restart: on-failure
networks:
- testelasticsearch
此处暂且记录,尚未完全分析该问题产生的具体原因