java – 如何以编程方式杀死风暴拓扑?

前端之家收集整理的这篇文章主要介绍了java – 如何以编程方式杀死风暴拓扑?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用一个 java类向风暴集群提交一个拓扑,我也打算使用java类来杀死拓扑.但是根据风暴 documentation,以下命令用于杀死拓扑,并且没有Java方法(这有正当的原因)
  1. storm kill {stormname}

那么可以从java类调用shell脚本去杀掉拓扑结构吗?杀死拓扑结构的其他方法是什么?

另外,如何获得在风暴集群中运行拓扑的状态?

解决方法

为了杀死拓扑结构,你可以试试这个
  1. import backtype.storm.generated.KillOptions
  2. import backtype.storm.generated.Nimbus.Client;
  3. import backtype.storm.utils.NimbusClient
  4. import backtype.storm.utils.Utils
  5.  
  6. Map conf = Utils.readStormConfig();
  7. Client client = NimbusClient.getConfiguredClient(conf).getClient();
  8. KillOptions killOpts = new KillOptions();
  9. //killOpts.set_wait_secs(waitSeconds); // time to wait before killing
  10. client.killTopologyWithOpts(topology_name,killOpts); //provide topology name

获取拓扑状态运行

  1. Client client = NimbusClient.getConfiguredClient(conf).getClient();
  2. List<TopologySummary> topologyList = client.getClusterInfo.get_topologies();
  3. // loop through the list and check if the required topology name is present in the list
  4. // if not it's not running

猜你在找的Java相关文章