команду убить топологию (как вы правильно упомянули)
storm kill topology-name
Теперь для завершения работы кластера необходимо запустить следующую команду для каждого узла
sudo service supervisord stop
Дайте supervisord
несколько секунд для остановки всех процессов. Обратите внимание, что попытка запустить supervisorctl
когда supervisord сама останавливается приведет к сообщению об ошибке (это, кажется, известная проблема интерфейса пользователя в supervisord 2.x)
От this документации
Как убить ВСЕ Штормовые процессы, включая рабочие процессы? Любые рабочие потоки (запущенные демонами 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'
Я попробую это, спасибо за указание Супервизора с отличной ссылкой. – zenbeni
u приветствуется :) .. было бы здорово, если бы вы могли поделиться своими выводами – user2720864
Это хорошо работает, мне все же пришлось поместить полную команду (с java-сервером -Dstorm.options ...) для супервизора для работы со штормом в супервизоре .conf, это похоже на ошибку python между штормом и supervisord. Отлично, чтобы остановить все, и иметь надзор с автоматическим перезапуском и журналами. – zenbeni