Elastic Search

Elasticsearch Shard Rebalancing Tutorial

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

O rebalanceamento automático de fragmentos está em conformidade com restrições e regras como filtragem de alocação e reconhecimento forçado, levando ao cluster mais eficiente e bem balanceado possível.

NOTA: Não confunda a realocação de shard, que é o processo de localizar e mover shards não atribuídos para os nós em que residem, com rebalanceamento. O rebalanceamento pega os fragmentos atribuídos e os move uniformemente para vários nós, com o objetivo de distribuir igualmente os fragmentos por nó.

Como ativar o reequilíbrio automático

Para habilitar o rebalanceamento automático do cluster no Elasticsearch, podemos usar a solicitação PUT to_cluster API endpoint e adicionar as configurações de que precisamos.

As configurações disponíveis para rebalanceamento de shard dinâmico incluem:

Considere a solicitação abaixo para permitir o rebalanceamento automático de shards para o cluster.

PUT / _cluster / settings

"persistente":
"grupo.roteamento.reequilibrar.habilitar ":" primários ",
"grupo.roteamento.alocação.allow_rebalance ":" sempre " ,
"grupo.roteamento.alocação.cluster_concurrent_rebalance ":" 2 "

A seguir está o comando cURL:

curl -XPUT "http: // localhost: 9200 / _cluster / settings" -H 'Content-Type: application / json' -d '"persistent": "cluster.roteamento.reequilibrar.habilitar ":" primários "," cluster.roteamento.alocação.allow_rebalance ":" sempre "," cluster.roteamento.alocação.cluster_concurrent_rebalance ":" 2 " '

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


“Reconhecido”: verdadeiro,
"persistente":
"grupo" :
"roteamento":
"rebalancear":
"ativar": "primários"
,
"alocação":
"allow_rebalance": "sempre",
"cluster_concurrent_rebalance": "2"



,
"transitório":

Rebalanceamento de índice manual

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

No entanto, caso surja a necessidade de realizar o rebalanceamento manual, você pode usar a seguinte solicitação:


“Reconhecido”: verdadeiro,
"persistente":
"grupo" :
"roteamento":
"rebalancear":
"ativar": "primários"
,
"alocação":
"allow_rebalance": "sempre",
"cluster_concurrent_rebalance": "2"



,
"transitório":

O comando cURL é:

curl -XPOST "http: // localhost: 9200 / _cluster / reroute" -H 'Content-Type: application / json' -d '"commands": ["move": "index": "kibana_sample_data_flights", "shard": 0, "from_node": "instance-0000000001", "to_node": "instance-0000000002"] '

NOTA: Lembre-se de que, se você realizar um rebalanceamento manual, o Elasticsearch pode mover os fragmentos automaticamente para garantir o melhor rebalanceamento possível.

Conclusão

Este guia o ajudou a atualizar e modificar as configurações de um cluster Elasticsearch para habilitar o rebalanceamento automático de shard. O artigo também abordou o rebalanceamento manual, se necessário.

SuperTuxKart para Linux
SuperTuxKart é um ótimo título projetado para trazer a você a experiência Mario Kart gratuitamente em seu sistema Linux. É bastante desafiador e diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth é um dos jogos de estratégia de código aberto mais populares que você pode jogar no momento. Este jogo não está apenas em desen...
0 A.D. Tutorial
Dos muitos jogos de estratégia que existem, 0 A.D. consegue se destacar como um título abrangente e um jogo muito profundo e tático, apesar de ser de ...