storm详解一

Topology结构图如下:

1.Topology的启动和关闭

1)启动Topology:

将编辑好的jar文件拷到一个文件目录下,如/cloud/storm/jar

storm jar /cloud/storm/jar/demo.jar org.me.MyTopology arg1 arg2arg3

其中,demo.jar是包含Topology实现代码的jar包,org.me.MyTopology的main方法是Topology的入口, arg1、arg2和arg3为org.me.MyTopology执行时需要传入的参数。

2)停止Storm Topology:

storm kill allmycode //将allmycode Topology杀掉

storm kill {toponame}杀掉运行的任务

其中,{toponame}为Topology提交到Storm集群时指定的Topology任务名称。

2.结合代码和StormUI理解Topology不同阶段的配置和运行状况

部分代码:

//创建一个TopologyBuilder对象

TopologyBuilder builder = new TopologyBuilder();

//设置TopologyBuilder对象Spout的id为random,将自定义的Spot对象传递给TopologyBuilder并设置由两个线程执行

builder.setSpout("random", new RandomWordSpout(), 2);

//注意下面被注掉的代码和未注掉的代码的区别,被注掉的代码没有设置Bolt的任务个数,默认一个线程执行一个Task任务 //此处设置为8说明一个线程执行2个Bolt Task任务

//builder.setBolt("transfer", new TransferBolt(), 4).shuffleGrouping("random"); 

//设置Bolt的id为transfer,将id为random的Spout数据源传递给该Bolt对象,TransferBolt也是自定义对象

builder.setBolt("transfer", new TransferBolt(), 4).shuffleGrouping("random").setNumTasks(8);

//设置该Bolt对象获取的数据来由id为transfer的Bolt提供,设置任务数为8

builder.setBolt("writer", new WriterBolt(), 4).fieldsGrouping("transfer", new Fields("word")).setNumTasks(8);

Config conf = new Config();
conf.setNumWorkers(
4);//设置创建4个worker

//conf.setNumAckers(0);//Acker负责监听任务执行的过程

conf.setDebug(true);
StormSubmitter.submitTopology("life-cycle", conf, builder.createTopology());//提交一个名字为life-cycle的Topology











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值