正确阻止Apache Storm

gajydyqb  于 2022-12-09  发布在  Apache
关注(0)|答案(4)|浏览(166)

有没有一个干净的方法来阻止 Storm ,而不杀死它与kill XXX,其中XXX是PID?
我运行storm kill topology-name来终止拓扑,但是在那之后,有没有一种干净的方法来关闭worker、nimbus、supervisor和ui?
我在文档中找不到任何与此对应的命令:https://github.com/nathanmarz/storm/wiki/Command-line-client

46qrfjad

46qrfjad1#

命令杀死一个拓扑(正如你正确地提到的):

storm kill topology-name

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

sudo service supervisord stop
  • 注意:* 给予supervisord几秒钟的时间来关闭所有进程。请注意,在supervisord本身停止时尝试运行supervisorctl将导致错误消息(这似乎是supervisord 2.x中已知的用户界面问题)

从本文档
如何终止包括工作进程在内的所有Storm进程?任何工作线程(由从属节点上的Supervisor守护程序启动)将继续运行。这是Storm经过深思熟虑的设计决策,因为这意味着崩溃/重新启动Nimbus和Supervisor守护程序不会影响Storm中任何正在运行的拓扑。缺点是您必须付出额外的努力才能完全停止群集中所有与Storm相关的进程。
如果要终止所有进程,请在从属节点上执行以下过程:

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

oalqel3c2#

从您链接到的页面:

  • 杀人 *
  • 语法:storm kill拓扑名称[-w等待时间秒数]*
  • 终止名为topology-name的拓扑。Storm将首先在拓扑的消息超时期间停用拓扑的喷口,以允许当前正在处理的所有消息完成处理。然后Storm将关闭工作进程并清除其状态。可以使用-w标志覆盖Storm在停用和关闭之间等待的时间尺子。*

正如您所看到的,这是为了给予您一个“干净”的关闭。

olhwl3o2

olhwl3o23#

好吧,如果你已经开始 Storm 作为./ Storm nimbus & ./ Storm 监督& ./ Storm ui然后
之后,您可能会忘记进程id,在这种情况下,您可以使用jps工具找出pid,然后将其作为
$JAVA_HOME/二进制文件/jps
3201控制台消费者
小行星7528
小行星2966
小行星3680
3681监督员
小行星6749
2669仲裁对等主机
先灭光轮
$ sudo杀3681
$ sudo杀死3680

osh3o9ms

osh3o9ms4#

如果您想一次删除所有拓扑:

bin/storm kill `bin/storm list | grep <some common keyword>  | awk '{print $1}'` -w 5

相关问题