Zaktualizowana odpowiedź.
_shutdown
API zostało usunięte w elasticsearch 2.x.
Niektóre opcje:
W swoim terminalu (w zasadzie w trybie programisty), po prostu naciśnij „Ctrl-C”
Jeśli uruchomiłeś go jako demon ( -d
), znajdź PID i zabij proces: SIGTERM
zamknie Elasticsearch czysto ( kill -15 PID
)
Jeśli działa jako usługa, uruchom coś takiego service elasticsearch stop
:
Poprzednia odpowiedź. Jest teraz przestarzały z wersji 1.6.
Tak. Zobacz dokumentację dotyczącą zamykania węzłów klastra administratora
Gruntownie:
# Shutdown local node
$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown'
# Shutdown all nodes in the cluster
$ curl -XPOST 'http://localhost:9200/_shutdown'
Jeśli chcesz tylko zastosować nową konfigurację, nie musisz jej wyłączać.
$ sudo service elasticsearch restart
Ale jeśli mimo wszystko chcesz go wyłączyć:
$ sudo service elasticsearch stop
LUB
$ sudo systemctl stop elasticsearch.service
$ sudo systemctl restart elasticsearch.service
Doker:
docker restart <elasticsearch-container-name or id>
źródło
To działa dla mnie na OSX.
źródło
Zatrzymanie usługi i zabicie demona to rzeczywiście właściwy sposób na zamknięcie węzła. Jednak nie zaleca się robienia tego bezpośrednio, jeśli chcesz wyłączyć węzeł w celu konserwacji. W rzeczywistości, jeśli nie masz replik, utracisz dane.
Gdy bezpośrednio zamkniesz węzeł, Elasticsearch będzie czekał 1 min (czas domyślny), aż wróci do trybu online. Jeśli tak się nie stanie, zacznie przydzielać fragmenty z tego węzła do innych węzłów, marnując dużo IO.
Typowym podejściem byłoby tymczasowe wyłączenie alokacji fragmentów przez wydanie:
Teraz, gdy usuniesz węzeł, ES nie będzie próbować alokować fragmentu z tego węzła do innych węzłów i możesz wykonać czynności konserwacyjne, a gdy węzeł zostanie uruchomiony, możesz ponownie włączyć alokację fragmentu:
Źródło: https://www.elastic.co/guide/en/elasticsearch/reference/5.5/restart-upgrade.html
Jeśli nie masz replik dla wszystkich indeksów, wykonanie tego typu czynności spowoduje przestoje w przypadku niektórych indeksów. W tym przypadku czystszym sposobem byłoby migrowanie wszystkich fragmentów do innych węzłów przed usunięciem węzła:
Spowoduje to przeniesienie wszystkich fragmentów z
10.0.0.1
innych węzłów (zajmie to trochę czasu w zależności od danych). Gdy wszystko zostanie zrobione, możesz zabić węzeł, przeprowadzić konserwację i przywrócić go do trybu online. Jest to wolniejsza operacja i nie jest wymagana, jeśli masz repliki.(Zamiast _ip, _id, _name z symbolami wieloznacznymi będą działać dobrze.)
Więcej informacji: https://www.elastic.co/guide/en/elasticsearch/reference/5.5/allocation-filtering.html
Inne odpowiedzi wyjaśniają, jak zabić proces.
źródło
Wtyczka Head dla Elasticsearch zapewnia świetny interfejs sieciowy do administrowania Elasticsearch, w tym do zamykania węzłów. Może również uruchamiać dowolne polecenia Elasticsearch.
źródło
użyj następującego polecenia, aby poznać numer pid już uruchomionego węzła.
Znalezienie sposobu na zabicie węzła zajęło mi godzinę i wreszcie mogłem to zrobić po użyciu tego polecenia w oknie terminala.
źródło
Jeśli nie możesz znaleźć procesu, który uruchamia elastyczne wyszukiwanie na komputerze z systemem Windows, możesz spróbować uruchomić w konsoli:
Poszukaj portu Elasticsearch jest uruchomiony, domyślnie
9200
. Ostatnia kolumna to PID dla procesu używającego tego portu. Możesz go zamknąć za pomocą prostego polecenia w konsoliźródło
Na wszelki wypadek, gdybyś chciał znaleźć PID instancji i zabić proces, zakładając, że węzeł nasłuchuje na porcie 9300 (port domyślny), możesz uruchomić następujące polecenie:
Być może będziesz musiał grać liczbami z powyższego kodu, takimi jak 58 i 1
źródło
Odpowiedź na Elasticsearch wewnątrz Dockera:
Po prostu zatrzymaj kontener docker. Wydaje się, że zatrzymuje się wdzięcznie, ponieważ rejestruje:
źródło
Biorąc pod uwagę, że masz 3 węzły.
Przygotuj swój klaster
Zatrzymaj usługę elastycznego wyszukiwania w każdym węźle
Ponownie uruchamiam klaster
Testowane na Elasticseach 6.5
Źródło:
źródło
Jeśli używasz węzła na hoście lokalnym, spróbuj użyć
brew service stop elasticsearch
Uruchamiam elastyczne wyszukiwanie na lokalnym hoście iOS.
źródło