Elasticsearch Shard Rebalancing Tutorial

Elasticsearch Shard Rebalancing Tutorial
Um Shard Elasticsearch é uma unidade que permite ao Elasticsearch Engine distribuir dados em um cluster. No Elasticsearch, dizemos que um cluster é "equilibrado" quando contém um número igual de fragmentos em todos os nó sem ter uma grande concentração de fragmentos em um único nó. Dependendo de como você configura o Elasticsearch, ele executa automaticamente os fragmentos reequilibrando em seu cluster para melhorar o desempenho.

O reequilíbrio automático de fragmentos está em conformidade com restrições e regras como filtragem de alocação e consciência forçada, levando ao cluster mais eficiente e bem equilibrado possível.

OBSERVAÇÃO: Não confunda a realocação do Shard, que é o processo de encontrar e mover fragmentos não atribuídos aos nós em que residem, com reequilíbrio. O reequilíbrio leva cacos atribuídos e os move uniformemente para vários nós, sendo o objetivo a distribuição igual de fragmentos por nó.

Como ativar o reequilíbrio automático

Para ativar o reequilíbrio automático de cluster no Elasticsearch, podemos usar a solicitação de put to_cluster endpoint e adicionar as configurações de que precisamos.

As configurações disponíveis para reequilíbrio dinâmico do shard incluem:

  • conjunto.roteamento.reequilíbrio.habilitar: Controla o reequilíbrio automático de vários tipos de fragmentos, como:
  • Todos: Conjuntos permitem o reequilíbrio do Shard para todos os índices.
  • Nenhum: Desativa o reequilíbrio do Shard para todos os índices.
  • Réplicas: Somente a replica o reequilíbrio do Shard é permitido.
  • Primário: Apenas o reequilíbrio primário do shard é permitido.
  • conjunto.roteamento.alocação.allow_rebalance: Define o valor para o reequilíbrio do Shard. As opções incluem:
    • Sempre: Habilita reequilíbrio indefinidamente.
    • INDICES_PRIMARIES_ACTIVO: Permite reequilíbrio apenas quando todos os fragmentos primários do cluster são alocados.
    • Índices_all_active: Permite reequilíbrio quando apenas os fragmentos no cluster são alocados. Isso inclui os fragmentos primários e réplicas.
  • conjunto.roteamento.alocação.conjunto.simultâneo.reequilíbrio: Esta opção define o número de reequilíbrios simultâneos permitidos no cluster. O valor padrão é 2.

Considere a solicitação abaixo para permitir o reequilíbrio automático do Shard para o cluster.

Put /_cluster /configurações

"persistente":
"conjunto.roteamento.reequilíbrio.Ativar ":" Primárias ",
"conjunto.roteamento.alocação.allow_rebalance ":" sempre " ,
"conjunto.roteamento.alocação.cluster_concurrent_rebalance ":" 2 "

A seguir, é o comando curl:

Curl -xput "http: // localizador: 9200/_cluster/Configurações" -h 'content -type: Application/json' -d '"persistente": "cluster.roteamento.reequilíbrio.Ativar ":" Primárias "," Cluster.roteamento.alocação.allow_rebalance ":" sempre "," cluster.roteamento.alocação.cluster_concurrent_rebalance ":" 2 " '

Este comando deve retornar uma resposta, pois o objeto JSON reconhece as configurações que são atualizadas.


"Reconhecido": verdadeiro,
"persistente":
"conjunto" :
"Roteamento":
"Rebalance":
"Habilable": "Primaries"
,
"Alocação":
"allow_rebalance": "sempre",
"cluster_concurrent_rebalance": "2"



,
"transitório":

Rebalanceamento do índice manual

Você também pode reequilibrar um fragmento manualmente para um índice específico. Eu não recomendaria esta opção porque as opções de reequilíbrio padrão do Elasticsearch são muito eficientes.

No entanto, se a necessidade de realizar o reequilíbrio manual surgir, você poderá usar a seguinte solicitação:


"Reconhecido": verdadeiro,
"persistente":
"conjunto" :
"Roteamento":
"Rebalance":
"Habilable": "Primaries"
,
"Alocação":
"allow_rebalance": "sempre",
"cluster_concurrent_rebalance": "2"



,
"transitório":

O comando Curl é:

Curl -xpost "http: // localhost: 9200/_cluster/renerte" -h 'content -type: Application/json' -d '"comandos": ["move": "index": "kibana_sample_data_flights", "index": " "Shard": 0, "From_Node": "Instância-0000000001", "To_Node": "Instância-0000000002"] '

OBSERVAÇÃO: Lembre -se de que, se você realizar uma reequilíbrio manual, o Elasticsearch poderá mover os fragmentos automaticamente para garantir o melhor reequilíbrio possível.

Conclusão

Este guia o orientou na atualização e modificação das configurações de um cluster Elasticsearch para permitir o reequilíbrio automático do Shard. O artigo também abrangeu o reequilíbrio manual, se você precisar.