Elasticsearchでノードを再起動する適切な方法は何ですか? (できればREST APIを介して、Java APIもOKかもしれません)
4 に答える
ノードを再起動する正しい方法は、シャットダウン APITERM
を使用するか、プロセスにシグナルを送信してノードをシャットダウンすることです (例: を使用kill $PID
)。
シャットダウンしたら、elasticsearch の実行に使用するもの (サービス ラッパーなど) を使用するか、コマンド ラインから開始するだけで、新しいノードを開始できます。
サービス ラッパーを使用している場合は、ノードにrestart
コマンドを渡すことでノードを再起動できます。たとえば/etc/init.d/elasticsearch restart
、これは上記の便利なラッパーにすぎません。
restart
API はバージョン 0.11 以降、問題があったため無効になっています。
ノードがダウンするたびに、および/または新しいノードが起動するたびに、クラスターはシャードを再配布します。これは、ノードを再起動する必要がある場合には望ましくない可能性があるため、ローリング再起動を利用できます。
最初にシャード割り当てを無効にします。
PUT /_cluster/settings { "transient" : { "cluster.routing.allocation.enable" : "none" } }
ノードを再起動します
service elasticsearch restart
シャードの割り当てを有効にします。
PUT /_cluster/settings { "transient" : { "cluster.routing.allocation.enable" : "all" } }
詳細:こちら
shutdown APIに類似した再起動 API があります。「シャットダウン」を「再起動」に置き換えるだけです。githubの問題も参照してください。