一尘不染

制止风暴:正确的方法

java

有没有一种干净的方法可以阻止风暴,而又不使用“ kill XXX”杀死风暴,其中XXX是PID?

我运行“ storm kill topology-
name”杀死拓扑,但是在那之后,有没有一种干净的方法来关闭worker,nimbus,supervisor和ui?

我没有从文档中找到与此命令相对应的任何命令:https : //github.com/nathanmarz/storm/wiki/Command-line-
client


阅读 237

收藏
2020-12-03

共1个答案

一尘不染

杀死拓扑的命令(正如您正确提到的那样):

storm kill topology-name

要关闭集群,您需要在每个节点上运行以下命令:

sudo service supervisord stop

注意:
supervisord几秒钟即可关机的所有进程。请注意,尝试supervisorctl在管理程序本身停止时运行将导致错误消息(在管理程序2.x中这似乎是已知的用户界面问题)

文档

如何杀死所有Storm进程,包括工作进程?当您停止集群时,碰巧正在运行的所有工作线程(由从属节点上的Supervisor守护程序启动)将继续运行。这是Storm的蓄意设计决定,因为这意味着崩溃/重新启动Nimbus和Supervisor守护程序不会影响Storm中的任何运行拓扑。缺点是您必须付出额外的努力才能完全停止群集中所有与Storm相关的进程。

如果要杀死所有进程,请在从属节点上执行以下过程:

$ sudo supervisorctl stop storm-supervisor
$ sudo pkill -TERM -u storm -f 'backtype.storm.daemon.worker'
2020-12-03