2015-03-08 11 views
19

Elasticsearch nie rozpocznie korzystania z ./bin/elasticsearch. Podnosi następujący wyjątek:Elasticsearch, nie udało się uzyskać blokady węzła, jest zapisywalny do zapisywania lokacji

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

Sprawdziłem uprawnienia na tym samym miejscu, a lokalizacja posiada 777 zezwoleń na nim i jest własnością użytkownika1.

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 

Na czym polega problem?

Próba uruchomienia elasticsearch 1.4.4 na Linuxie bez dostępu do roota.

+0

Dostałem również ten komunikat o błędzie ze świeżą nową instalacją debian elasticsearch 1.4.4. Prosty restart spowodował zniknięcie tego komunikatu. – Sonson123

Odpowiedz

3

W mojej sytuacji miałem złe uprawnienia w folderze katalogów ES. Ustawienie właściwego właściciela rozwiązało problem.

# 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

Na OSX, z naparami, zamki węzła są plikami zapisanymi gdzieś w '/ usr/local/var/elasticsearch/nodes' Jeśli miałeś stary ElasticSearch siedzący tak jak ja, możesz zacząć od próby usunięcia konkretnego' plik node.lock' lub idź jądro i 'rm -rf' folder' nodes'. – sameers

0

W moim przypadku błąd został spowodowany przez niezamontowanie urządzeń używanych do skonfigurowanych katalogów danych przy użyciu "sudo mount".

20

Otrzymałem ten sam komunikat o błędzie, ale wszystko zostało zamontowane poprawnie, a uprawnienia zostały poprawnie przypisane.

Okazało się, że miałem "osierocony" proces elastycznego przeszukiwania, który nie został zabity przez normalne polecenie zatrzymania.

Musiałem ręcznie zabić proces, a następnie ponowne uruchomienie elastycznego wyszukiwania działało ponownie.

16

Osierociłem proces java związany z Elasticsearch. Zabicie go rozwiązało problem z zamkiem.

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

Masz już działa ES. Aby udowodnić, że typ:

curl 'localhost: 9200/_cat/indeksy v?

Jeśli chcesz uruchomić inne wystąpienie na tym samym polu można ustawić node.max_local_storage_nodes w elasticsearch.yml do wartości większej niż 1.

6

powodem jest inna instancja działa!
najpierw znajdź identyfikator elastycznej bielizny.

ps aux | grep 'elastic' 

następnie zabić za pomocą kill -9 <PID_OF_RUNNING_ELASTIC>.
Było kilka odpowiedzi na usunięcie pliku node.lock, ale to nie pomogło, ponieważ działająca instancja zrobi to ponownie!

+1

Idealny. Jakoś miałem 2 przypadki złapane przez 'grep'. – Corbfon

Powiązane problemy