Tutorial de reequilibrio de fragmentos de elasticsearch

Tutorial de reequilibrio de fragmentos de elasticsearch
Un Elasticsearch Shard es una unidad que permite al motor Elasticsearch distribuir datos en un clúster. En Elasticsearch, decimos que un clúster está "equilibrado" cuando contiene un número igual de fragmentos en cada nodo sin tener una gran concentración de fragmentos en un solo nodo. Dependiendo de cómo configure ElasticSearch, realiza automáticamente fragmentos reequilibrando en su clúster para mejorar el rendimiento.

El reequilibrio automático de fragmentos se ajusta a restricciones y reglas como el filtrado de asignación y la conciencia forzada, lo que lleva al clúster más eficiente y bien equilibrado posible.

NOTA: No confunda la reasignación de fragmentos, que es el proceso de encontrar y mover fragmentos no asignados a los nodos en los que residen, con reequilibrio. El reequilibrio toma fragmentos asignados y los mueve de manera uniforme a varios nodos, el propósito es la distribución igual de fragmentos por nodo.

Cómo habilitar el reequilibrio automático

Para habilitar el reequilibrio automático de clúster en ElasticSearch, podemos usar la solicitud PUT a_Cluster API Endpoint y agregar la configuración que necesitamos.

La configuración disponible para el reequilibrio dinámico de fragmentos incluye:

  • grupo.enrutamiento.reequilibrio.permitir: Controla el reequilibrio automático para varios tipos de fragmentos, como:
  • Todo: Los conjuntos habilitan el reequilibrio de fragmentos para todos los índices.
  • Ninguno: Deshabilita el reequilibrio de fragmentos para todos los índices.
  • Réplicas: Solo se permite la réplica de reequilibrio de fragmentos.
  • Primario: Solo se permite el reequilibrio del fragmento primario.
  • grupo.enrutamiento.asignación.PETH_REBALANCE: Establece el valor para el reequilibrio de fragmentos. Las opciones incluyen:
    • Siempre: Habilita el reequilibrio indefinidamente.
    • INDICES_PRIRAS_ACTIVE: Permite reequilibrar solo cuando se asignan todos los fragmentos primarios en el clúster.
    • INDICES_ALL_ACTIVE: Permite el reequilibrio cuando solo se asignan los fragmentos en el clúster. Esto incluye los fragmentos primarios y de réplica.
  • grupo.enrutamiento.asignación.grupo.concurrente.Rebalance: Esta opción establece el número de reequilibres concurrentes permitidas en el clúster. El valor predeterminado es 2.

Considere la siguiente solicitud para permitir el reequilibrio automático de fragmentos para el clúster.

Poner /_cluster /configuración

"persistente":
"grupo.enrutamiento.reequilibrio.habilitar ":" primarias ",
"grupo.enrutamiento.asignación.pertod_rebalance ":" siempre " ,
"grupo.enrutamiento.asignación.cluster_concurrent_rebalance ":" 2 "

El siguiente es el comando curl:

curl -xput "http: // localhost: 9200/_cluster/settings" -h 'content -type: application/json' -d '"persistente": "cluster.enrutamiento.reequilibrio.habilitar ":" primarias "," clúster.enrutamiento.asignación.pertod_rebalance ":" siempre "," clúster.enrutamiento.asignación.cluster_concurrent_rebalance ":" 2 " '

Este comando debe devolver una respuesta ya que el objeto JSON reconoce la configuración que se actualiza.


"Reconocido": verdadero,
"persistente" :
"grupo" :
"enrutamiento":
"Rebalance":
"Habilitar": "primarias"
,
"Asignación":
"PETH_REBALANCE": "Siempre",
"cluster_concurrent_rebalance": "2"



,
"transitorio":

Reequilibrio del índice manual

También puede reequilibrar un fragmento manualmente para un índice específico. No recomendaría esta opción porque las opciones de reequilibrio predeterminadas de ElasticSearch son muy eficientes.

Sin embargo, si surge la necesidad de realizar reequilibrio manual, puede usar la siguiente solicitud:


"Reconocido": verdadero,
"persistente" :
"grupo" :
"enrutamiento":
"Rebalance":
"Habilitar": "primarias"
,
"Asignación":
"PETH_REBALANCE": "Siempre",
"cluster_concurrent_rebalance": "2"



,
"transitorio":

El comando curl es:

curl -xpost "http: // localhost: 9200/_cluster/reroute" -h 'content -type: application/json' -d '"comandos": ["Move": "index": "kibana_sample_data_flights",,,, "Shard": 0, "from_node": "instancia-0000000001", "to_node": "instancia-000000000002"] '

NOTA: Tenga en cuenta que si realiza un reequilibrio manual, Elasticsearch puede mover los fragmentos automáticamente para garantizar el mejor reequilibrio posible.

Conclusión

Esta guía lo guió a través de la actualización y la modificación de la configuración de un clúster Elasticsearch para habilitar el reequilibrio automático de fragmentos. El artículo también cubrió el reequilibrio manual, si lo necesita.