a stray sheep

お仕事周りの雑記帳

IlleagalException: failed to obtain node locks,

elasticsearch.bat 実行時エラー

学習用に elasticsearchプロセスの2つ目を実行した際に、以下のエラーが出た。

> elasticsearch.bat
...
「IlleagalException: failed to obtain node locks, tried 
[[C:\temp\elasticsearch-6.2.3\data\elasticsearch]] with lock id [0]; 
maybe these locations are not writable or multiple nodes were started 
without increasing [node.max_local_storage_nodes] (was [1])?」
...

対処

node.max_local_storage_nodesについて

エラーメッセージにある「node.max_local_storage_nodes」を調べてみる。 www.elastic.co

node.max_local_storage_nodes の説明

data pathは、複数のノードで共有される、異なるクラスタのノードでもね。 これは、開発マシンでのフェールオーバーや異なる設定をテストするのにとても役立つ。 しかし、商用では、サーバごとにElasticsearchノードを1つにすることを推奨する。

デフォルトでは、Elasticsearchは、同じdata pathを共有することからノードが1つ以上になることを避けるように設定されている。 1つ以上のノードを許容するには、node.max_local_storage_nodesの設定を1より大きい自然数(a positive integer)にする。

パラメータを設定して起動

> elasticsearch.bat -Enode.max_local_storage_nodes=2
...

起動できました