这篇文章主要介绍storm的两种操作方式之一: 本地模式。
本地模式在一个进程里面模拟一个storm集群的所有功能, 这对开发和测试来说非常方便。以本地模式运行topology跟在集群上运行topology类似。
要创建一个进程内“集群”,使用LocalCluster对象就可以了:
1
2
3
import backtype.storm.LocalCluster;
LocalCluster cluster = new LocalCluster();
然后可以通过LocalCluster对象的submitTopology方法来提交topology, 效果和StormSubmitter对应的方法是一样的。submitTopology方法需要三个参数: topology的名字, topology的配置以及topology对象本身。你可以通过killTopology方法来终止一个topology, 它需要一个topology名字作为参数。
要关闭一个本地集群,简单调用:
1
cluster.shutdown();
就可以了。
本地模式下的一些常用配置你可以在这里看到完整的配置列表:
1. Config.TOPOLOGY_MAX_TASK_PARALLELISM 这个配置给topology里面各个组件(spout, bolt)设定一个线程数量上限。一般来说生成环境的这个配置很大(100左右), 而这对于本地测试来说太大了, 这个配置可以让你把它调小。
2. Config.TOPOLOGY_DEBUG 这个配置如果设置成true, storm会log下spout和bolt发射出来的所有消息, 对于调试来说非常有用。