一、常用命令

  1.提交命令

提交任务命令格式:storm jar 【jar路径】 【拓扑包名.拓扑类名】 【拓扑名称】
torm jar examples/storm-starter/storm-starter-topologies-0.9.6.jar storm.starter.WordCountTopology wordcount

   2.杀死任务

storm kill 【拓扑名称】 -w 10(执行kill命令时可以通过-w [等待秒数]指定拓扑停用以后的等待时间)
storm kill topology-name -w 10

  3.停用任务

storm deactivte  【拓扑名称】
storm deactivte topology-name
#我们能够挂起或停用运行中的拓扑。当停用拓扑时,所有已分发的元组都会得到处理,但是spouts的nextTuple方法不会被调用。
销毁一个拓扑,可以使用kill命令。它会以一种安全的方式销毁一个拓扑,首先停用拓扑,在等待拓扑消息的时间段内允许拓扑完成当前的数据流。

  4.启用任务

storm activate【拓扑名称】
storm activate topology-name

  5.重新部署任务

storm rebalance  【拓扑名称】
storm rebalance topology-name
再平衡使你重分配集群任务。这是个很强大的命令。比如,你向一个运行中的集群增加了节点。
再平衡命令将会停用拓扑,然后在相应超时时间之后重分配工人,并重启拓扑。

  更多命令,参考:http://blog.csdn.net/u010003835/article/details/52123807

  完整命令,参考官网文档:http://storm.apache.org/releases/1.0.6/Command-line-client.html

二、wordCount示例程序

 ###以下内容可以替换为Jstrom的依赖!包是backtype的topologyBuilder!

   1.引入依赖

<!-- https://mvnrepository.com/artifact/org.apache.storm/storm-core -->
<dependency>
    <groupId>org.apache.storm</groupId>
    <artifactId>storm-core</artifactId>
    <version>1.0.6</version>
    <scope>provided</scope>
</dependency>

   JStorm是阿里巴巴基于storm的二次开发,完全兼容storm!

<!-- https://mvnrepository.com/artifact/com.alibaba.jstorm/jstorm-core -->
        <dependency>
            <groupId>com.alibaba.jstorm</groupId>
            <artifactId>jstorm-core</artifactId>
            <version>2.1.1</version>
            <!--<scope>provided</scope>-->
        </dependency>

  // 本地提交时请注释掉作用域(provided不参与打包)

  2。编写相关程序

参考:http://blog.csdn.net/u010454030/article/details/52576346

    http://m635674608.iteye.com/blog/2221179

 

package com.jiangbei;

import org.apache.storm.Config;
import org.apache.storm.LocalCluster;
import org.apache.storm.StormSubmitter;
import org.apache.storm.topology.TopologyBuilder;
import org.apache.storm.tuple.Fields;

/**
 * wordcount类
 *
 * @author zcc ON 2018/3/6
 **/
public class WordCount {
    public static void main(String[] args) throws Exception{
        // 创建TopologyBuilder用来创建topology
        TopologyBuilder builder = new TopologyBuilder();
        builder.setSpout("mySpout", new MySpout(), 1);
        builder.setBolt("split", new MyBolt1(), 10).shuffleGrouping("mySpout");
        builder.setBolt("count", new MyBolt2(), 2).fieldsGrouping("split", new Fields("word"));
        // 创建configuration
        Config config = new Config();
        config.setNumWorkers(2);
        // 本地模式很有用
        // config.setDebug(true);

        // 向集群提交
        // StormSubmitter.submitTopologyWithProgressBar("wordcount", config,builder.createTopology());

        // 本地模式
        LocalCluster localCluster = new LocalCluster();
        localCluster.submitTopology("wordcount", config, builder.createTopology());
    }
}
WordCount

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-29
  • 2022-01-08
  • 2021-09-22
  • 2022-12-23
相关资源
相似解决方案