Остановка бури: правильный путь
Есть ли чистый способ остановить шторм, не убивая его с помощью "kill XXX", где XXX является PID?
Я запускаю "топологию-шторм", чтобы убить топологию, но после этого есть ли чистый способ отключить рабочих, нимбов, супервизор и ui?
Я не нашел никакой команды, которая соответствует этому из документации: https://github.com/nathanmarz/storm/wiki/Command-line-client
Ответы
Ответ 1
чтобы убить топологию (как вы правильно указали)
storm kill topology-name
Теперь, чтобы завершить работу кластера, вам нужно выполнить следующую команду для каждого node
sudo service supervisord stop
Дайте supervisord
несколько секунд, чтобы закрыть все процессы. Обратите внимание, что попытка запустить supervisorctl
при остановленном режиме супервизора приведет к появлению сообщения об ошибке (это, по-видимому, является известной проблемой пользовательского интерфейса в supervisord 2.x)
Из этой документации
Как убить все процессы Storm, включая рабочие процессы? Любые рабочие потоки (запущенные демонами Supervisor на подчиненных узлах), которые выполняются при остановке кластера, будут продолжать работать. Это преднамеренное дизайнерское решение Storm, потому что это означает, что сбой/перезапуск демонов Nimbus и Supervisor не повлияют на какие-либо запущенные топологии в Storm. Недостатком является то, что вам нужно приложить дополнительные усилия, чтобы полностью остановить все связанные с Storm процессы в кластере.
# If you want to kill ALL processes follow this procedure on the slave nodes:
$ sudo supervisorctl stop storm-supervisor
$ sudo pkill -TERM -u storm -f 'backtype.storm.daemon.worker'
Ответ 2
Со страницы, на которую вы ссылались:
убивать
Синтаксис: имя убить топологию [-w wait-time-secs]
Убивает топологию с именем топологии. Storm сначала деактивирует топологию топологии на время таймаута сообщения топологии, чтобы все обработанные в данный момент сообщения обрабатывались для завершения обработки. Буря затем остановит рабочих и очистит их штат. Вы можете переопределить время ожидания бури между дезактивацией и выключением с помощью флага -w.
Как вы можете видеть, это разработано, чтобы дать вам "чистое" завершение работы. Команда kill отключает рабочих.
Ответ 3
Хорошо, если вы начали штурм как. /storm nimbus и. /storm supervisor и. /storm ui, тогда
после этого вы можете забыть идентификатор процесса в этом случае, вы можете использовать инструмент jps, чтобы узнать pid, а затем убить их как
$JAVA_HOME/bin/jps
3201 ConsoleConsumer
7528 Jps
2966 Кафка
3680 nimbus
3681 supervisor
6749 Launcher
2669 QuorumPeerMain
убийство nimbus first
$sudo kill 3681
$sudo kill 3680
Ответ 4
Если вы используете шторм в Linux, перейдите к.. /storm/bin, введите следующую команду
./storm ui &
затем перейдите в браузер и введите URL
http://127.0.0.1:8095/index.html
Примечание: порт 8095 является портом бури uu.
![введите описание изображения здесь]()
после открытия топологии в новом теге вы можете найти ниже окно
![введите описание изображения здесь]()
этот шторм ui также полезен для мониторинга вашей конфигурации. Мы можем легко убить любое количество топологий. Когда вы убьете свою топологию, рабочий также будет убит.