Alterar numero_de_replicas para todos os índices

porque?

Por exemplo, você está executando um 2cluster de nó com um number_of_replicasde 1. Quando você deseja substituir uma das instâncias, apenas adicionando uma terceira instância e, posteriormente, eliminando a antiga, muito provavelmente você acabará movendo muitos dados.

Para resolver o problema, você só precisa aumentar o number_of_replicasantes de sua nova instância ingressar no cluster. Dessa forma, todos os shards estão apenas sendo sincronizados com a nova instância, mas cada shard também permanecerá nas instâncias antigas. Quando a nova instância está totalmente sincronizada, você deseja desativar a instância antiga e reduzir o number_of_replicasretorno ao que era.

requisitos

  • curl + xargs: você já deve tê-los … 😉
  • utilitário de processamento de linha de comando jq : json

one-liner

curl -sg 'http://your-elastic-search:9200/*/_settings' 
| jq -r 'to_entries
| .[]

| "curl -sg -XPUT http://your-elastic-search:9200/"

+ .key + "/_settings -d " + (

{index:{number_of_replicas:(

.value.settings.index.number_of_replicas

| tonumber | . +1 | tostring

)}}|tojson|@sh

)'

| bash

NOTA: Há um problema com o renderizador de bloco de código coderwalls, <a href="/sh">@sh</a>deveria ser @sh.

Para diminuir, basta alterar o jqscript . +1para. -1