`
gaojingsong
  • 浏览: 1182301 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Storm入门级JAVA示例演示】

阅读更多

本例子主要演示,storm中的HelloWorld,从Spout不断的随机产生单词,然后在Bolt中进行组装输出。完整代码见附件。

详细代码如下:

// 实例化TopologyBuilder类
        TopologyBuilder topologyBuilder = new TopologyBuilder();
        // 设置喷发节点并分配并发数,该并发数将会控制该对象在集群中的线程数。
        topologyBuilder.setSpout("SimpleSpout", new SimpleSpout(), 1);
        // 设置数据处理节点并分配并发数。指定该节点接收喷发节点的策略为随机方式。
        topologyBuilder.setBolt("SimpleBolt", new SimpleBolt(), 3).shuffleGrouping("SimpleSpout");
        Config config = new Config();
        config.setDebug(true);
        if (System.getProperty("os.name").contains("Windows")) {
          // 这里是本地模式下运行的启动代码。
            config.setMaxTaskParallelism(1);
            LocalCluster cluster = new LocalCluster();
            cluster.submitTopology("simple", config, topologyBuilder.createTopology());
        } else {
           config.setNumWorkers(1);
              StormSubmitter.submitTopology("simple", config, topologyBuilder.createTopology());
        }

 

// 实例化Spout类
String[] names = new String[]{"JAVA","PHP","IOS","ASP","HADOOP"};
 @Override
 public void open(Map conf, TopologyContext context,
   SpoutOutputCollector collector) {
  this.collector = collector;
  System.out.println("======Spout=====open========");
 }

 @Override
 public void nextTuple() {
  Utils.sleep(1000 * 3);
  Random rand = new Random();
  collector.emit(new Values(names[rand.nextInt(names.length)]));
  System.out.println("======Spout=====nextTuple========");
 }
 /**
     * 定义字段id,该id在简单模式下没有用处,但在按照字段分组的模式下有很大的用处。
     * 该declarer变量有很大作用,我们还可以调用declarer.declareStream();来定义stramId,该id可以用来定义更加复杂的流拓扑结构
     */
 @Override
 public void declareOutputFields(OutputFieldsDeclarer declarer) {
  declarer.declare(new Fields("msg"));
  System.out.println("======Spout=====declareOutputFields========");
  
 }

 

 

// 实例化Bolt类。
public void prepare(Map stormConf, TopologyContext context,
   OutputCollector collector) {
  System.out.println("======Bolt=====prepare========");
  
 }

 public void execute(Tuple input) {
  String desc = "out :"+ input.getString(0);
  System.out.println("====Bolt========desc:"+desc);
  
 }

 public void declareOutputFields(OutputFieldsDeclarer declarer) {
  System.out.println("====Bolt==declarer========");
  
 }

 



 

 

 

 



 

 

 



 

  • 大小: 166.1 KB
  • 大小: 77.2 KB
  • 大小: 160.1 KB
0
2
分享到:
评论

相关推荐

    storm入门 PDF 下载

    7. **Java编程**:由于标签为"java",因此"storm入门"的学习中,会涉及到使用Java语言编写spout和bolt的逻辑,理解如何通过Java API与Storm交互。 8. **实时数据处理**:Storm非常适合实时数据分析,例如实时日志...

    storm集群的搭建-java示例代码.zip

    本资料包提供了一个基于Java的示例代码,将帮助我们了解如何在Java环境中配置和运行Storm集群。 首先,我们要理解Storm的基本概念。Storm由多个组件构成,包括Nimbus(主控节点)、Supervisor(工作节点)、Worker...

    storm+kafka源码示例

    在我们的"storm+kafka源码示例"中,拓扑(Topology)是Storm的基本工作单元,它定义了数据流的处理流程。具体到这个示例,`StormKafkaTopoMain.java`是拓扑的主类,它会定义整个处理逻辑。在这个类中,你会看到如何...

    storm之WordCount示例Java代码.zip

    本压缩包提供的"storm之WordCount示例Java代码"是针对Storm的一个经典入门教程,展示了如何使用Java语言实现一个简单的WordCount程序。这个程序的主要目标是统计文本数据流中的单词出现次数。 首先,我们需要理解...

    Storm入门教程 之Storm原理和概念详解

    Storm入门教程 之Storm原理和概念详解,出自Storm流计算从入门到精通之技术篇,Storm入门视频教程用到技术:Storm集群、Zookeeper集群等,涉及项目:网站PV、UV案例实战、其他案例; Storm视频教程亮点: 1、Storm...

    Storm API实现词频统计

    在这个“Storm API实现词频统计”的案例中,我们将深入探讨如何利用Java编程语言和Storm API来构建一个实时的词频统计应用。 首先,我们需要理解Storm的基本架构。Storm由多个组件构成,包括Spout(数据源)、Bolt...

    storm入门到精通

    01.Storm基础知识、02.Storm集群安装-1-new 、03.Storm集群安装-2、04.starter打包运行测试、05.Storm配置文件配置项讲解。。。。。。15集全

    jstorm storm入门demo

    通常,这样的压缩包会有一个README文件来指导用户如何构建和运行示例,还可能包含源代码文件(如.java文件)、配置文件(如storm.yaml或拓扑定义文件)以及任何必要的依赖库。 **知识点详细说明:** 1. **JStorm与...

    storm程序代码示例

    在本文中,我们将深入探讨如何使用Java开发Apache Storm实时流处理系统,并通过具体的代码示例进行解析。Apache Storm是一个开源的分布式实时计算系统,它能够处理无界数据流,确保每个事件都得到正确的处理,即使在...

    Storm 简单示例

    **Storm 简单示例** Storm 是一个开源的分布式实时计算系统,由Twitter开发并贡献给Apache软件基金会。它允许开发者处理无界数据流,就像处理数据库查询一样简单。在大数据领域,Storm是一个非常重要的工具,尤其...

    Storm 上手 demo 例子 演示

    在提供的文件名“storm-book-examples-ch02-getting_started-8e42636”中,我们可以推断这是某个关于Storm入门的章节,可能包含逐步指导和示例代码,帮助读者了解如何开始使用Storm。另一文件名“storm-book-...

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

    在本压缩包“storm集群搭建Java客户端测试代码.zip”中,包含了有关Apache Storm集群的搭建教程以及使用Java客户端进行测试的代码示例。Apache Storm是一个分布式实时计算系统,它允许开发者处理无界数据流,常用于...

    storm集成Redis操作示例代码.zip

    本示例代码旨在展示如何将Storm与Redis进行集成,以实现高效的数据处理和存储。 在Storm中,通常会使用Spout作为数据源,Bolt进行数据处理,最后通过某种方式将结果持久化或传递到下一个处理阶段。在本示例中,...

    storm之TridentFilter使用示例代码.zip

    本篇将深入探讨TridentFilter在Apache Storm中的应用,通过提供的示例代码帮助理解其工作原理和使用方法。 Trident是Storm中的一个高级API,它将数据流分解为一系列的小批处理操作,每个操作都是完全确定的。...

    storm 示例demo

    简单的storm入门示例,从0到1让你清楚的理解storm.下面是代码示例: import backtype.storm.topology.BasicOutputCollector; import backtype.storm.topology.OutputFieldsDeclarer; import backtype.storm.topology...

    storm开发jar包以及storm例子源码

    标题中的"storm开发jar包以及storm例子源码"表明了我们即将探讨的是关于Apache Storm的开发环境设置和示例代码。Apache Storm是一个开源的分布式实时计算系统,它允许开发者处理无限的数据流,常用于大数据实时处理...

Global site tag (gtag.js) - Google Analytics