Elasticsearch, Failed to obtain node lock, is the following location writable

后端 未结 13 2290
予麋鹿
予麋鹿 2020-12-05 12:45

Elasticsearch won\'t start using ./bin/elasticsearch. It raises the following exception:

- ElasticsearchIllegalStateException[Failed to obtain n         


        
相关标签:
13条回答
  • 2020-12-05 13:00

    For me the error was a simple one: I created a new data directory /mnt/elkdata and changed the ownership to the elastic user. I then copied the files and forgot to change the ownership afterwards again.

    After doing that and restarting the elastic node it worked.

    0 讨论(0)
  • 2020-12-05 13:03

    I got this same error message, but things were mounted fine and the permissions were all correctly assigned.

    Turns out that I had an 'orphaned' elasticsearch process that was not being killed by the normal stop command.

    I had to manually kill the process and then restarting elasticsearch worked again.

    0 讨论(0)
  • 2020-12-05 13:04

    After I upgraded the elasticsearch docker-image from version 5.6.x to 6.3.y the container would not start anymore because of the aforementioned error

    Failed to obtain node lock

    In my case the root-cause of the error was missing file-permissions

    The data-folder used by elasticsearch was mounted from the host-system into the container (declared in the docker-compose.yml):

        volumes:
          - /var/docker_folders/common/experimental-upgrade:/usr/share/elasticsearch/data
    

    This folder could not be accessed anymore by elasticsearch for reasons I did not understand at all. After I set very permissive file-permissions to this folder and all sub-folders the container did start again.

    I do not want to reproduce the command to set those very permissive access-rights on the mounted docker-folder, because it is most likely a very bad practice and a security-issue. I just wanted to share the fact that it might not be a second process of elasticsearch running, but actually just missing access-rights to the mounted folder.

    Maybe someone could elaborate on the apropriate rights to set for a mounted-folder in a docker-container?

    0 讨论(0)
  • 2020-12-05 13:04

    I had an another ElasticSearch running on the same machine.

    Command to check : netstat -nlp | grep 9200 (9200 - Elastic Port) Result : tcp 0 0 :::9210 :::* LISTEN 27462/java

    Kill the process by, kill -9 27462 27462 - PID of ElasticSearch instance

    Start the elastic search and it may run now.

    0 讨论(0)
  • 2020-12-05 13:08

    You already have ES running. To prove that type:

    curl 'localhost:9200/_cat/indices?v'

    If you want to run another instance on the same box you can set node.max_local_storage_nodes in elasticsearch.yml to a value larger than 1.

    0 讨论(0)
  • 2020-12-05 13:10

    I had an orphaned Java process related to Elasticsearch. Killing it solved the lock issue.

    ps aux | grep 'java'
    kill -9 <PID>
    
    0 讨论(0)
提交回复
热议问题