modest violet

modest violet

開発者としてのあれこれや、日々の雑記など

your future hasn't written yet. no one's has.
by Emmett Lathrop "Doc" Brown

【Elasticsearch】クラスターにノードを追加する際 NotMasterException が発生する

Elasticsearch で クラスターにノードを追加する際、マスターノードが見つからないエラーが出たので、回避策の備忘録です。

現象

Elasticsearchでクラスターに複数ノードを追加する。

各ノード候補の /etc/elasticsearch/elasticsearch.yml に設定を追加する。 ノード候補となるElasticsearchは仮想環境で、同一のノードからクローン後に各ノード名を変更している。 ノード名を変更した後、クラスター名を合わせるだけで自動的にノードが追加される。

www.elastic.co

・・・ハズが、「マスターノードが見つからない」という症状が発生し、大いにハマる。

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なるものまでは変わらないようだ。

stackoverflow.com

解決策

古いノード情報を削除する。

cd / var / lib / elasticsearch 
sudo rm -rf nodes / 
sudo systemctl start elasticsearch

全てのノードを再起動後、エラーが出ないことを確認。