`
m635674608
  • 浏览: 5031646 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

本地模式与StormSubmitter的对比

 
阅读更多

本地模式与StormSubmitter的对比

现在,已经使用一个名为LocalCluster的工具在本地计算机上运行Topology。在计算机上运行Storm基础设施,可以很容易地运行与调试不同的Topology。但如果你想要提交你的Topology到运行中的Storm集群呢?Storm的一个有趣特性是,它很容易发送你的Topology去运行在一个真正的集群中。你需要做的是将LocalCluster改为StormSubmitter,实现submitTopology方法,submitTopology方法负责发送Topology到集群。

可以在下面的代码中看到变化:
 

  1. // LocalCluster cluster = new LocalCluster();  
  2. // cluster.submitTopology("Count-Word-Topology-With-Refresh-Cache", conf,  
  3.     builder.createTopology());  
  4. StormSubmitter.submitTopology("Count-Word-Topology-With-Refresh-Cache", conf,  
  5.     builder.createTopology());  
  6. // Thread.sleep(1000);  
  7. // cluster.shutdown(); 

当使用StormSubmitter时,不能在代码中控制集群,这和LocalCluster是不一样的。

接下来,需要打包源代码到一个jar文件中。当运行Storm客户端命令提交Topology时,会发送该jar文件。如果你使用Maven,唯一需要做的就是到源代码文件夹下运行以下命令:
 

  1. mvn package 

一旦生成了jar文件,就可以使用storm jar命令来提交Topology。语法如下:
 

  1. Storm jar allmycode.jar org.me.MyTopology arg1 arg2 arg3 

在这个例子中,在Topology源代码项目文件夹下运行如下命令:
 

  1. storm jar target/Topologies-0.0.1-SNAPSHOT.jar countword.TopologyMain src/main/resources/words.txt 

使用完这些命令,就会提交Topology到集群中。

为了停止或者杀死Storm,可以运行如下命令:
 

  1. storm kill Count-Word-Topology-With-Refresh-Cache 

Topology的名字必须具有唯一性。

本地模式(Local mode)

本地模式在进程中模拟了一个Storm集群,用于开发和测试Topology。在本地模式下运行Topology类似于在集群上运行Topology。

只需使用LocalCluster类就可以创建一个进程内的集群,例如:
 

  1. import backtype.storm.LocalCluster;  
  2.  
  3. LocalCluster cluster = new LocalCluster(); 

然后,可以使用LocalCluster对象的submitTopology方法来提交Topology。就像在StormSubmitter中相应的方法一样,submitTopology方法需要一个名字、一个Topology配置和Topology对象。然后,你可以使用killTopology方法,将Topology名称作为参数,杀死一个Topology。

关闭一个本地集群,只需要简单地调用:
 

  1. cluster.shutdown(); 

1. 常见的本地模式的配置

acktype.storm.Config类用来配置Storm,它的继承关系如下:
 

  1. java.lang.Object  
  2.   └java.util.AbstractMap<K,V> 
  3.       └java.util.HashMap<java.lang.String,java.lang.Object> 
  4.           └backtype.storm.Config  
  5. All Implemented Interfaces:  
  6. java.io.Serializable, java.lang.Cloneable, java.util.Map<java.lang.String,  
  7. 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

分享到:
评论

相关推荐

    java-sdk-storm

    - **本地模式**:开发者可以在本地机器上运行拓扑进行测试,Java SDK提供`LocalCluster`类实现这一功能。 - **分布式模式**:通过`StormSubmitter`将拓扑部署到远程的Storm集群上。 5. **数据流模型** - Storm ...

    storm-samples

    6. **本地模式运行**:如何在本地模式下运行Storm拓扑,使用`StormSubmitter`类的本地模式进行调试。 7. **集群部署**:理解如何将拓扑提交到远程的Storm集群,使用`StormSubmitter`类的非本地模式。 8. **容错...

    storm之WordCount示例Java代码.zip

    6. 测试与调试:在开发过程中,可以使用Storm的本地模式(LocalCluster)进行测试,这将模拟真实的集群环境,但所有处理都在本地单机上进行。 总的来说,"storm之WordCount示例Java代码"帮助我们理解Storm的基本...

    Getting Started with Storm

    **主类**:编写一个主类,用来实例化 Topology,并提交给 Storm 集群或本地模式进行执行。 **实践**:运行 Topology 并观察输出结果,了解数据是如何从 Spout 流向 Bolt 的。 **结论**:通过本章的学习,我们了解...

    Storm编程实例

    集群可以是本地模式(仅用于测试),也可以是分布式模式。 3. **启动和监控**:一旦拓扑提交,Storm会开始执行数据处理任务。可以通过Storm UI来监控拓扑的运行状态,包括任务执行情况、错误信息等。 4. **动态...

    【Storm入门级JAVA示例演示】

    在本地模式下,你可以使用`LocalCluster`来运行拓扑,以便在开发过程中快速测试。当准备好部署到生产环境时,可以使用`StormSubmitter`提交到实际的Storm集群。 学习Storm的关键在于理解其核心概念,如拓扑、Spouts...

    storm_simple_example

    4. **本地模式测试**:在实际部署之前,你可以使用Storm的本地模式进行测试,这样可以在本地单机环境中模拟整个集群的行为,无需实际集群环境。 5. **JDK1.7特性**:由于项目基于JDK1.7,了解这一版本的特性,如try...

    real-time:udacity Apache Storm 课程的最终项目

    - 调试 Storm 应用通常涉及日志分析和本地模式运行。你需要知道如何使用 `LocalCluster` 和 `LocalDRPC` 对拓扑进行本地测试。 6. **监控与优化**: - Storm 提供了 Metrics API,可以收集各种性能指标。了解如何...

    Apache Storm-0.8.1 API 参考文档 ( Html版 )

    2. **LocalCluster**:本地测试环境,可以在本地模拟Storm集群运行Topology,方便调试。 四、容错机制 1. **Acknowledgement**:当Bolt成功处理一个Tuple后,会发送一个确认消息,如果处理失败,则会回溯到上游...

    JStorm 2.1.1 API

    JStorm支持动态调整Topology、动态扩缩容、Drainer模式(用于批量处理)、Trident API(支持复杂的状态计算)等高级特性。这些特性使得JStorm在应对各种实时计算场景时更具灵活性。 通过理解和熟练运用上述API,...

    udacity-storm:使用 Apache Storm 课程的 Udacity 实时分析代码

    - **本地模式测试**: 在本地机器上模拟 Storm 集群,用于快速开发和调试。 - **实时数据分析**: 探索如何使用 Storm 处理实时数据,进行实时统计、聚合和过滤。 通过学习 Udacity 的课程,你将掌握如何利用 Apache ...

    storm程序代码示例

    在Java程序中,我们还需要设置拓扑参数,如worker数量、task数量等,然后使用`StormSubmitter`提交拓扑到本地或远程Storm集群。 ```java Config conf = new Config(); conf.setNumWorkers(3); // 设置worker数量 /...

    jstorm文档

    编写Topology代码,创建Spout和Bolt,定义Stream Grouping,然后使用`LocalCluster`进行本地测试,验证无误后,使用`StormSubmitter`提交到远程集群。 **5. 简单示例** 以下是一个简单的WordCount Topology示例: ...

    storm基础培训

    例如,使用TopologyBuilder类来构建Topology,配置执行的任务数(Number of Workers),并使用StormSubmitter类提交Topology到Storm集群上运行。 在Storm的开发中,需要特别注意数据分区和任务分配策略。由于Storm...

    storm之集成kafka操作示例代码.zip

    这可以通过`StormSubmitter`类完成,提供topology的定义、配置以及集群的连接信息。 8. **监控与故障恢复**:由于Storm的容错机制,如果某个worker节点失败,其任务会被重新分配到其他节点,确保数据处理的连续性。...

    Kafka与Storm整合后java客户端使用实例代码.zip

    5. **提交拓扑**:构建好拓扑后,使用`StormSubmitter`提交到Storm集群。记得确保集群配置正确,并且Kafka和Storm之间的版本兼容。 在压缩包中的"Kafka0.8Storm0.9.1Optr"可能是针对Kafka 0.8和Storm 0.9.1的一个...

    storm提交topology的过程共1页.pdf.zip

    4. **提交topology**:使用`StormSubmitter`类的`submitTopology`方法将打包好的JAR和配置提交到Storm集群。这个方法需要提供topology的名字、配置以及JAR文件中的主类名。提交后,Storm集群会负责调度和管理...

    storm-demo:风暴演示应用程序

    这涉及设置拓扑名称、配置参数,以及使用 `StormSubmitter` 将拓扑提交到集群。 5. **运行环境**:为了运行这个示例,你需要在本地或远程集群上安装和配置 Storm。对于本地测试,可以使用 `LocalCluster` 类,而在...

    Storm实战构建大数据实时计算

    StormSubmitter.submitTopology("my-topology", conf, builder.createTopology()); ``` #### 五、Storm性能优化 1. **并行度调整**:通过增加Spout和Bolt的并行度来提高处理能力。 2. **数据分发策略**:合理选择...

    storm集群搭建Java客户端测试代码.zip

    - **提交Topology**:通过Java客户端,你可以使用`StormSubmitter`类提交Topology到Storm集群。提交时需指定Topology名称、配置和已构建的Topology对象。 - **监控与管理**:Java客户端还可以用于监控Topology的...

Global site tag (gtag.js) - Google Analytics