Quero reiniciar um nó elasticsearch com uma nova configuração. Qual é a melhor maneira de desligar normalmente um nó?
Matar o processo é a melhor maneira de desligar o servidor ou existe algum URL mágico que posso usar para desligar o nó?
elasticsearch
Michael_Scharf
fonte
fonte
Se você deseja apenas aplicar uma nova configuração, não precisa desligá-lo.
$ sudo service elasticsearch restart
Mas se você quiser desligá-lo mesmo assim:
$ sudo service elasticsearch stop
OU
$ sudo systemctl stop elasticsearch.service
$ sudo systemctl restart elasticsearch.service
Docker:
docker restart <elasticsearch-container-name or id>
fonte
Isso funciona para mim no OSX.
fonte
Parar o serviço e matar o daemon são, de fato, as maneiras corretas de encerrar um nó. No entanto, não é recomendado fazer isso diretamente se quiser desativar um nó para manutenção. Na verdade, se você não tiver réplicas, perderá dados.
Quando você desliga um nó diretamente, o Elasticsearch espera 1m (tempo padrão) para que ele volte a ficar online. Caso contrário, ele começará a alocar os fragmentos desse nó para outros nós, desperdiçando muito IO.
Uma abordagem típica seria desativar a alocação de shard temporariamente, emitindo:
Agora, quando você desativa um nó, o ES não tentará alocar fragmentos desse nó para outros nós e você pode realizar sua atividade de manutenção e, em seguida, quando o nó estiver ativo, você pode habilitar a alocação de fragmentos novamente:
Fonte: https://www.elastic.co/guide/en/elasticsearch/reference/5.5/restart-upgrade.html
Se você não tiver réplicas para todos os seus índices, a execução desse tipo de atividade resultará no tempo de inatividade de alguns dos índices. Uma maneira mais limpa, neste caso, seria migrar todos os fragmentos para outros nós antes de derrubar o nó:
Isso moverá todos os fragmentos de
10.0.0.1
para outros nós (levará algum tempo, dependendo dos dados). Depois que tudo estiver feito, você pode matar o nó, realizar a manutenção e colocá-lo novamente online. Esta é uma operação mais lenta e não é necessária se você tiver réplicas.(Em vez de _ip, _id, _name com curingas funcionará perfeitamente.)
Mais informações: https://www.elastic.co/guide/en/elasticsearch/reference/5.5/allocation-filtering.html
Outras respostas explicaram como matar um processo.
fonte
O plugin Head para Elasticsearch fornece um excelente front-end baseado na web para a administração do Elasticsearch, incluindo o fechamento de nós. Ele também pode executar qualquer comando Elasticsearch.
fonte
use o seguinte comando para saber o pid do nó já em execução.
Levei uma hora para descobrir a maneira de matar o nó e poderia finalmente fazê-lo após usar este comando na janela do terminal.
fonte
Se você não consegue encontrar qual processo está executando o elasticsearch na máquina Windows, você pode tentar executar no console:
Verifique se a porta elasticsearch está em execução, o padrão é
9200
. A última coluna é o PID para o processo que está usando essa porta. Você pode desligá-lo com um comando simples no consolefonte
Caso queira encontrar o PID da instância e encerrar o processo, supondo que o nó esteja escutando a porta 9300 (a porta padrão), você pode executar o seguinte comando:
Você pode ter que brincar com os números no código mencionado acima, como 58 e 1
fonte
Se você estiver executando um nó no localhost, tente usar
brew service stop elasticsearch
Eu executo elasticsearch no iOS localhost.
fonte
Resposta para Elasticsearch dentro do Docker:
Basta parar o contêiner do docker. Parece parar normalmente porque registra:
fonte
Considerando que você tem 3 nós.
Prepare seu cluster
Pare o serviço elasticsearch em cada nó
Reiniciando o cluster novamente
Testado em Elasticseach 6.5
Fonte:
fonte