Elasticsearch で クラスターにノードを追加する際、マスターノードが見つからないエラーが出たので、回避策の備忘録です。
現象
Elasticsearchでクラスターに複数ノードを追加する。
各ノード候補の /etc/elasticsearch/elasticsearch.yml に設定を追加する。 ノード候補となるElasticsearchは仮想環境で、同一のノードからクローン後に各ノード名を変更している。 ノード名を変更した後、クラスター名を合わせるだけで自動的にノードが追加される。
・・・ハズが、「マスターノードが見つからない」という症状が発生し、大いにハマる。
master_not_discovered_exception (NotMasterException)がスローされる。
{ "error": { "root_cause": [ { "type" : "master_not_discovered_exception", "reason" : null } ], "type" : "master_not_discovered_exception", "reason" : null }, "status" : 503 }
原因
同じ仮想からクローンした為、Node-idが同じままになっており、うまくマスターノードを探せない状態に陥っていた様子。 elasticsearch.ymlでnode nameを指定しただけでは、node idなるものまでは変わらないようだ。
解決策
古いノード情報を削除する。
cd / var / lib / elasticsearch sudo rm -rf nodes / sudo systemctl start elasticsearch
全てのノードを再起動後、エラーが出ないことを確認。