2015-03-08 4 views
19

Elasticsearch non inizierà a utilizzare ./bin/elasticsearch. Si solleva la seguente eccezione:Elasticsearch, Impossibile ottenere il blocco del nodo, è la seguente posizione scrivibile

- ElasticsearchIllegalStateException[Failed to obtain node lock, is the following location writable?: [/home/user1/elasticsearch-1.4.4/data/elasticsearch] 

ho controllato i permessi sulla stessa posizione e la posizione ha 777 i permessi su di essa ed è di proprietà di user1.

ls -al /home/user1/elasticsearch-1.4.4/data/elasticsearch 
drwxrwxrwx 3 user1 wheel 4096 Mar 8 13:24 . 
drwxrwxrwx 3 user1 wheel 4096 Mar 8 13:00 .. 
drwxrwxrwx 52 user1 wheel 4096 Mar 8 13:51 nodes 

Qual è il problema?

Cercando di eseguire elasticsearch 1.4.4 su linux senza accesso root.

+0

Ho anche ricevuto questo messaggio di errore con una nuova installazione debian elasticsearch 1.4.4. Un semplice riavvio ha contribuito a far sparire questo messaggio. – Sonson123

risposta

3

Nella mia situazione ho avuto autorizzazioni errate sulla cartella dir ES. L'impostazione del proprietario corretto l'ha risolto.

# change owner 
chown -R elasticsearch:elasticsearch /data/elasticsearch/ 

# to validate 
ls /data/elasticsearch/ -la 
# prints  
# drwxr-xr-x 2 elasticsearch elasticsearch 4096 Apr 30 14:54 CLUSTER_NAME 
+0

Su OSX, con brew, i blocchi del nodo sono file scritti da qualche parte in '/ usr/local/var/elasticsearch/nodes'. Se avevi un vecchio ElasticSearch in giro come quello che ho fatto, puoi iniziare tentando di eliminare uno specifico' node.lock' o vai nucleare e 'rm -rf' la cartella' nodes'. – sameers

0

Nel mio caso, questo errore è stato causato da non montare i dispositivi utilizzati per le directory dei dati configurati usando "sudo mount".

20

Ho ricevuto lo stesso messaggio di errore, ma le cose sono state montate correttamente e le autorizzazioni sono state tutte correttamente assegnate.

Si scopre che ho avuto un processo di elasticsearch "orfano" che non veniva ucciso dal normale comando di arresto.

Ho dovuto interrompere manualmente il processo e quindi riavviare elasticsearch ha funzionato di nuovo.

16

Ho avuto un processo java orfano relativo a Elasticsearch. Uccidendolo ha risolto il problema del blocco.

ps aux | grep 'java' 
kill -9 <PID> 
3

Hai già in esecuzione ES. Per dimostrare che tipo:

ricciolo 'localhost: 9200/_cat/indici v?'

Se si desidera eseguire un'altra istanza sulla stessa macchina è possibile impostare node.max_local_storage_nodes in elasticsearch.yml ad un valore maggiore di 1.

6

il motivo è un'altra istanza in esecuzione!
prima trovare l'id di esecuzione elastico.

ps aux | grep 'elastic' 

poi uccidere con kill -9 <PID_OF_RUNNING_ELASTIC>.
Ci sono state alcune risposte per rimuovere il file node.lock ma questo non ha aiutato poiché l'istanza in esecuzione lo farà di nuovo!

+1

Perfetto. In qualche modo ho avuto 2 istanze catturate dal 'grep'. – Corbfon

Problemi correlati