2015-03-08 35 views
19

Elasticsearch將不會開始使用./bin/elasticsearch。 它提出了以下異常:Elasticsearch,無法獲取節點鎖定,是以下位置可寫

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

我檢查的權限在相同的位置和位置上有777個權限並已由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 

問題是什麼?

試圖在linux上運行elasticsearch 1.4.4而無需root權限。

+0

我也收到了一個新的debian elasticsearch 1.4.4安裝的錯誤信息。簡單的重新啓動有助於使此消息消失。 – Sonson123 2015-03-09 13:47:28

回答

3

在我的情況下,我在ES dir文件夾上有錯誤的權限。設置正確的所有者解決它。

# 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

在OSX上,使用brew,節點鎖定是在'/ usr/local/var/elasticsearch/nodes'下編寫的文件。如果您像我一樣坐在一箇舊的ElasticSearch中,則可以嘗試刪除特定的' node.lock'文件或者去核和'rm -rf'這個'nodes'文件夾。 – sameers 2016-10-28 03:08:36

0

在我的情況,該錯誤是由不安裝用於使用「命令裝載」的配置數據目錄中的設備造成的。

20

我得到了同樣的錯誤信息,但東西安裝正常,權限都正確分配。

原來,我有一個'孤兒'彈性搜索過程沒有被正常停止命令所殺死。

我不得不手動殺死進程,然後重新啓動elasticsearch再次工作。

16

我有一個與Elasticsearch相關的孤兒java進程。殺死它解決了鎖問題。

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

您已經有ES正在運行。爲了證明類型:

捲曲的「localhost:9200/_cat /指數V'」

如果你想在同一個盒子,你可以設置elasticsearch.yml node.max_local_storage_nodes的值越大運行另一個實例比1.

6

原因是另一個實例正在運行!
先找到運行彈性的id。

ps aux | grep 'elastic' 

然後使用kill -9 <PID_OF_RUNNING_ELASTIC>殺死。
有一些解決方案刪除node.lock文件,但沒有幫助,因爲正在運行的實例將再次!

+1

完美。不知何故,我有'grep'抓到了2個實例。 – Corbfon 2018-02-12 17:21:23