本地模式与StormSubmitter的对比
2016-03-10 16:05
369 查看
本地模式与StormSubmitter的对比
现在,已经使用一个名为LocalCluster的工具在本地计算机上运行Topology。在计算机上运行Storm基础设施,可以很容易地运行与调试不同的Topology。但如果你想要提交你的Topology到运行中的Storm集群呢?Storm的一个有趣特性是,它很容易发送你的Topology去运行在一个真正的集群中。你需要做的是将LocalCluster改为StormSubmitter,实现submitTopology方法,submitTopology方法负责发送Topology到集群。
可以在下面的代码中看到变化:
// LocalCluster cluster = new LocalCluster();
// cluster.submitTopology("Count-Word-Topology-With-Refresh-Cache", conf,
builder.createTopology());
StormSubmitter.submitTopology("Count-Word-Topology-With-Refresh-Cache", conf,
builder.createTopology());
// Thread.sleep(1000);
// cluster.shutdown();
当使用StormSubmitter时,不能在代码中控制集群,这和LocalCluster是不一样的。
接下来,需要打包源代码到一个jar文件中。当运行Storm客户端命令提交Topology时,会发送该jar文件。如果你使用Maven,唯一需要做的就是到源代码文件夹下运行以下命令:
mvn package
一旦生成了jar文件,就可以使用storm jar命令来提交Topology。语法如下:
Storm jar allmycode.jar org.me.MyTopology arg1 arg2 arg3
在这个例子中,在Topology源代码项目文件夹下运行如下命令:
storm jar target/Topologies-0.0.1-SNAPSHOT.jar countword.TopologyMain src/main/resources/words.txt
使用完这些命令,就会提交Topology到集群中。
为了停止或者杀死Storm,可以运行如下命令:
storm kill Count-Word-Topology-With-Refresh-Cache
Topology的名字必须具有唯一性。
本地模式(Local mode)
本地模式在进程中模拟了一个Storm集群,用于开发和测试Topology。在本地模式下运行Topology类似于在集群上运行Topology。
只需使用LocalCluster类就可以创建一个进程内的集群,例如:
import backtype.storm.LocalCluster;
LocalCluster cluster = new LocalCluster();
然后,可以使用LocalCluster对象的submitTopology方法来提交Topology。就像在StormSubmitter中相应的方法一样,submitTopology方法需要一个名字、一个Topology配置和Topology对象。然后,你可以使用killTopology方法,将Topology名称作为参数,杀死一个Topology。
关闭一个本地集群,只需要简单地调用:
cluster.shutdown();
1. 常见的本地模式的配置
acktype.storm.Config类用来配置Storm,它的继承关系如下:
java.lang.Object
└java.util.AbstractMap<K,V>
└java.util.HashMap<java.lang.String,java.lang.Object>
└backtype.storm.Config
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.Map<java.lang.String,
java.lang.Object>
2. Config.TOPOLOGY_MAX_TASK_PARALLELISM
这个配置项是组件产生线程数量的上限。通常生产环境的拓扑并行度很大(数以百计的线程),可以尝试在本地模式下测试拓扑,找出不合理负荷的地方。这个配置项使你可以很容易地控制并行度。
3. Config.TOPOLOGY_DEBUG
当设置为true时,每次从Spout或者Bolt发送元组,Storm都会写进日志,这对于调试程序是非常有用的。
http://book.51cto.com/art/201410/453401.htm
现在,已经使用一个名为LocalCluster的工具在本地计算机上运行Topology。在计算机上运行Storm基础设施,可以很容易地运行与调试不同的Topology。但如果你想要提交你的Topology到运行中的Storm集群呢?Storm的一个有趣特性是,它很容易发送你的Topology去运行在一个真正的集群中。你需要做的是将LocalCluster改为StormSubmitter,实现submitTopology方法,submitTopology方法负责发送Topology到集群。
可以在下面的代码中看到变化:
// LocalCluster cluster = new LocalCluster();
// cluster.submitTopology("Count-Word-Topology-With-Refresh-Cache", conf,
builder.createTopology());
StormSubmitter.submitTopology("Count-Word-Topology-With-Refresh-Cache", conf,
builder.createTopology());
// Thread.sleep(1000);
// cluster.shutdown();
当使用StormSubmitter时,不能在代码中控制集群,这和LocalCluster是不一样的。
接下来,需要打包源代码到一个jar文件中。当运行Storm客户端命令提交Topology时,会发送该jar文件。如果你使用Maven,唯一需要做的就是到源代码文件夹下运行以下命令:
mvn package
一旦生成了jar文件,就可以使用storm jar命令来提交Topology。语法如下:
Storm jar allmycode.jar org.me.MyTopology arg1 arg2 arg3
在这个例子中,在Topology源代码项目文件夹下运行如下命令:
storm jar target/Topologies-0.0.1-SNAPSHOT.jar countword.TopologyMain src/main/resources/words.txt
使用完这些命令,就会提交Topology到集群中。
为了停止或者杀死Storm,可以运行如下命令:
storm kill Count-Word-Topology-With-Refresh-Cache
Topology的名字必须具有唯一性。
本地模式(Local mode)
本地模式在进程中模拟了一个Storm集群,用于开发和测试Topology。在本地模式下运行Topology类似于在集群上运行Topology。
只需使用LocalCluster类就可以创建一个进程内的集群,例如:
import backtype.storm.LocalCluster;
LocalCluster cluster = new LocalCluster();
然后,可以使用LocalCluster对象的submitTopology方法来提交Topology。就像在StormSubmitter中相应的方法一样,submitTopology方法需要一个名字、一个Topology配置和Topology对象。然后,你可以使用killTopology方法,将Topology名称作为参数,杀死一个Topology。
关闭一个本地集群,只需要简单地调用:
cluster.shutdown();
1. 常见的本地模式的配置
acktype.storm.Config类用来配置Storm,它的继承关系如下:
java.lang.Object
└java.util.AbstractMap<K,V>
└java.util.HashMap<java.lang.String,java.lang.Object>
└backtype.storm.Config
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.Map<java.lang.String,
java.lang.Object>
2. Config.TOPOLOGY_MAX_TASK_PARALLELISM
这个配置项是组件产生线程数量的上限。通常生产环境的拓扑并行度很大(数以百计的线程),可以尝试在本地模式下测试拓扑,找出不合理负荷的地方。这个配置项使你可以很容易地控制并行度。
3. Config.TOPOLOGY_DEBUG
当设置为true时,每次从Spout或者Bolt发送元组,Storm都会写进日志,这对于调试程序是非常有用的。
http://book.51cto.com/art/201410/453401.htm
相关文章推荐
- mmseg 同义词分析器 SolrSynonymParser
- 布式搜索elasticsearch 中文分词集成
- Spring Bean 初始化过程
- Maven导出工程依赖的jar包
- jactor
- java 线程池详解
- 协同过滤推荐算法在MapReduce与Spark上实现对比
- lucene4.7 分词器(三)
- elasticsearch的实现全文检索
- 详解Java GC的工作原理
- storm - 常用命令
- linux统计文件中关键字出现的行号
- 加锁方法对于Map
- Maven下使用Jetty进行Debug
- java file 海量文件处理
- 滑动窗口 TOPN 技术实现演变
- 部署与管理ZooKeeper
- JSONP跨域的原理解析
- JPPF helloword
- com.bea.xml.XmlException: failed to load java type corresponding to e=web-app@ht