Quelle est la bonne façon de redémarrer un noeud dans elasticsearch? (de préférence via l'API REST, Java pourrait également fonctionner correctement))
La bonne façon de redémarrer un nœud consiste à l’arrêter, en utilisant soit le API d’arrêt , soit en envoyant un signal TERM
au processus (par exemple avec kill $PID
).
Une fois arrêté, vous pouvez démarrer un nouveau noeud en utilisant celui que vous utilisez pour exécuter elasticsearch, par exemple l’encapsuleur de service, ou tout simplement en le démarrant à partir de la ligne de commande.
Si vous utilisez le wrapper de service, vous pouvez redémarrer un nœud en lui passant la commande restart
: eg /etc/init.d/elasticsearch restart
_ mais ce n’est qu’un emballage pratique pour ce qui précède.
L'API restart
est désactivée depuis la version 0.11 car elle posait problème.
Chaque fois qu'un nœud tombe en panne et/ou qu'un nouveau nœud arrive, le cluster redistribue les fragments, ce qui peut ne pas être souhaitable lorsque vous devez simplement redémarrer un nœud. Vous pouvez donc utiliser Rolling restart:
d'abord désactiver l'allocation de partition:
PUT/_cluster/settings {"transitoire": {"cluster.routing.allocation.enable": "none"}}
redémarrer le noeud service elasticsearch restart
Activer l'allocation des fragments:
PUT/_cluster/settings {"transitoire": {"cluster.routing.allocation.enable": "tous"}}
Plus sur ceci: Ici
Il existe une API de redémarrage analogue à API d'arrêt . Il suffit de remplacer "shutdown" par "restart". Voir aussi le numéro sur github .