Tutoriel de rééquilibrage d'Elasticsearch Shard

Tutoriel de rééquilibrage d'Elasticsearch Shard
Un Shard Elasticsearch est une unité qui permet au moteur Elasticsearch de distribuer des données dans un cluster. Dans Elasticsearch, nous disons qu'un cluster est «équilibré» lorsqu'il contient un nombre égal d'éclats sur chaque nœud sans avoir une grande concentration d'éclats sur un seul nœud. Selon la façon dont vous configurez Elasticsearch, il effectue automatiquement un rééquilibrage des éclats dans votre cluster pour améliorer les performances.

Le rééquilibrage automatique des fragments est conforme aux restrictions et aux règles comme le filtrage d'allocation et la sensibilisation forcée, conduisant à la cluster le plus efficace et le plus équilibré possible.

NOTE: Ne confondez pas la réallocation des rayons, qui est le processus de recherche et de déplacement sans attribution des nœuds dans lesquels ils résident, avec rééquilibrage. Le rééquilibrage prend des éclats attribués et les déplace uniformément vers divers nœuds, le but étant la distribution égale des éclats par nœud.

Comment permettre un rééquilibrage automatique

Pour permettre le rééquilibrage automatique des grappes dans Elasticsearch, nous pouvons utiliser la demande de put de la demande de terminaison de l'API et ajouter les paramètres dont nous avons besoin.

Les paramètres disponibles pour le rééquilibrage des fragments dynamiques comprennent:

  • grappe.routage.rééquilibre.activer: Contrôle le rééquilibrage automatique pour divers types de fragment, tels que:
  • Tous: Les ensembles permettent le rééquilibrage des fragment pour tous les indices.
  • Aucun: Désactive le rééquilibrage des fragment pour tous les indices.
  • Les répliques: Seule le rééquilibre des échanges de répliques est autorisé.
  • Primaire: Seul le rééquilibrage des fragments primaires est autorisé.
  • grappe.routage.allocation.Autorce_rebalance: Définit la valeur du rééquilibrage des fragments. Les options incluent:
    • Toujours: Permet le rééquilibrage indéfiniment.
    • Indices_primaries_active: Permet le rééquilibrage uniquement lorsque tous les fragments principaux dans le cluster sont alloués.
    • Indices_all_active: Permet le rééquilibrage lorsque seuls les éclats du cluster sont alloués. Cela comprend à la fois les éclats primaires et répliques.
  • grappe.routage.allocation.grappe.concurrent.rééquilibrage: Cette option définit le nombre de rééquilibations simultanées autorisées dans le cluster. La valeur par défaut est 2.

Considérez la demande ci-dessous pour permettre le rééquilibrage automatique des fragment pour le cluster.

Mettre / _cluster / Paramètres

"persistant":
"grappe.routage.rééquilibre.Activer ":" primaires ",
"grappe.routage.allocation.perte_rebalance ":" toujours " ,
"grappe.routage.allocation.cluster_concurrent_rebalance ":" 2 "

Ce qui suit est la commande curl:

curl -xput "http: // localhost: 9200 / _cluster / paramètres" -h 'contenu-type: application / json' -d '"persistant": "cluster.routage.rééquilibre.Activer ":" Primaires "," Cluster.routage.allocation.allow_rebalance ":" toujours "," cluster.routage.allocation.cluster_concurrent_rebalance ":" 2 " '

Cette commande doit renvoyer une réponse car l'objet JSON reconnaît les paramètres mis à jour.


«Reconnu»: vrai,
"persistant" :
"grappe" :
"routage":
"rééquilibrage":
"Activer": "primaires"
,
"allocation" :
"perte_rebalance": "toujours",
"cluster_concurrent_rebalance": "2"



,
"transitoire":

Rééquilibrage de l'indice manuel

Vous pouvez également rééquilibrer manuellement un éclat pour un indice spécifique. Je ne recommanderais pas cette option car les options de rééquilibrage par défaut d'Elasticsearch sont très efficaces.

Cependant, si la nécessité d'effectuer un rééquilibrage manuel survient, vous pouvez utiliser la demande suivante:


«Reconnu»: vrai,
"persistant" :
"grappe" :
"routage":
"rééquilibrage":
"Activer": "primaires"
,
"allocation" :
"perte_rebalance": "toujours",
"cluster_concurrent_rebalance": "2"



,
"transitoire":

La commande curl est:

curl -xpost "http: // localhost: 9200 / _cluster / reroute" -h 'content-type: application / json' -d '"commandes": ["move": "index": "kibana_sample_data_flights", "Shard": 0, "From_node": "instance-0000000001", "to_node": "instance-0000000002"] '

NOTE: Gardez à l'esprit que si vous effectuez un rééquilibrage manuel, Elasticsearch peut déplacer automatiquement les éclats pour assurer le meilleur rééquilibrage possible.

Conclusion

Ce guide vous a guidé à travers la mise à jour et la modification des paramètres d'un cluster Elasticsearch pour permettre un rééquilibrage automatique des fragments. L'article a également couvert le rééquilibrage manuel, si vous en avez besoin.