Остановка бури: правильный путь

Есть ли чистый способ остановить шторм, не убивая его с помощью "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 также полезен для мониторинга вашей конфигурации. Мы можем легко убить любое количество топологий. Когда вы убьете свою топологию, рабочий также будет убит.