web-dev-qa-db-fra.com

Redémarrez le noeud elasticsearch

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))

52
user1768906

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.

66
DrTech

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:

  1. d'abord désactiver l'allocation de partition:

    PUT/_cluster/settings {"transitoire": {"cluster.routing.allocation.enable": "none"}}

  2. redémarrer le noeud service elasticsearch restart

  3. Activer l'allocation des fragments:

    PUT/_cluster/settings {"transitoire": {"cluster.routing.allocation.enable": "tous"}}

Plus sur ceci: Ici

7
Tiago Lopo

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 .

7
Kim Stebel