今天学习了一下storm的相关知识,不是很深入,就是看了一下storm-starter-master项目里的WordCountTopology。直接运行报错,发现这个例子中,有个Bolts是用python或者ruby语言开发的。因为这个例子要完成的任务就是计算单词的频率,比较简单,所以打算调通它,然后把程序一步步的跟一遍,这样就好理解一些内容了。
我的方法就是把SplitSentence的核心用java实现。
首先肯定不用再扩展ShellBolt了,也不实现IRichBolt,而是实现BaseBasicBolt。在execute方法里的内容就照着python代码,最后一句写成
collector.emit(new Values(word,1));
但是报错:
Tuple created with wrong number of fields. Expected 1 fields but got 2 fields
说实话,我在截止错误出现的时候,对storm的理解都是相当含糊的,于是我把上面那句改成
collector.emit(new Values(word));
居然能正确运行,这纯粹是撞上的,不过这倒让我对declareOutputFields这个方法的作用有了了解。在本例中,declareOutputFields里的内容是:
declarer.declare(new Fields("word"));
它声明了该Bolt的输出字段,只有一个,而且这个Fields的名字很重要,是供下游使用的,比如这里叫word,那么在fieldsGrouping也应该通过word来指定这个结果。如果是
declarer.declare(new Fields("word","count"));则最初的那种格式是可以的。
而且,在fieldsGrouping函数里面,还可以设定从上一个Bolt中获得哪些Fields。
我觉得写Topology就像是水管工人的工作,把水流引流到需要的地方去。
分享到:
相关推荐
**第五天:初步接触 Storm** - 了解 Storm 的历史和发展现状。 - 学习 Storm 的核心概念和架构。 - 安装并配置 Storm 的开发环境。 **第六天:构建 Storm 拓扑** - 学习如何创建和提交 Storm 拓扑。 - 编写简单的...
主分支: ##包裹包战 mvn clean package -DskipTests=true -Dwarcp ./target/storm-ui.war $TOMCAT_HOME/webapps/包装罐 mvn clean package -DskipTests=truecp ./target/storm-ui-*.jar $STORM_HOME/external/...
Storm是一个分布式实时计算系统,能够有效地处理大量数据流。它由Twitter公司开发,最初的目的是为了处理大规模的数据,如社交网络上的实时信息更新。Storm的基本单位是“topology”(拓扑结构),它可以理解为一个...
Storm入门到精通 Storm 是一个分布式实时计算系统,主要用于处理大规模数据流。它的核心组件包括Spout和Bolt,分别负责数据的输入和处理。下面是对 Storm 的一个概述,从基础知识到实践应用。 Storm 组件 Storm ...
1. 添加依赖:在项目中引入Storm和Kafka相关的库,如storm-kafka或storm-kafka-client。 2. 配置KafkaSpout:设置KafkaSpout的配置,包括Zookeeper地址、Kafka的Group ID、要消费的主题等。 3. 创建Spout实例:基于...
Storm入门教程 之Storm原理和概念详解,出自Storm流计算从入门到精通之技术篇,Storm入门视频教程用到技术:Storm集群、Zookeeper集群等,涉及项目:网站PV、UV案例实战、其他案例; Storm视频教程亮点: 1、Storm...
### Storm简介及安装知识点梳理 #### 一、Storm简介 **Storm** 是一款由BackType公司开发的分布式实时计算系统,后被Twitter收购并开源。它主要用于处理大规模的数据流,能够简单、高效、可靠地处理实时数据。...
【标题】"Storm入门"指的是对Apache Storm这一分布式实时计算系统的初步学习和理解。Apache Storm是一个开源的流处理系统,它被设计用来处理和计算无界数据流,以实现连续的、实时的数据处理。在Java编程语言的支持...
"Storm"是一款专门用于测试Web服务的工具,下面我们将深入探讨其相关知识点。 1. WebService概念: WebService是通过XML(可扩展标记语言)、WSDL(Web服务描述语言)和SOAP(简单对象访问协议)等标准来构建的,...
Apache Storm 是一个分布式实时计算系统,它被设计用于处理大规模数据流,提供高吞吐量、低延迟的数据处理能力。在大数据领域,Storm 被广泛应用于实时分析、在线机器学习、持续计算、数据集成以及任何需要实时处理...
标题中的"storm开发jar包以及storm例子源码"表明了我们即将探讨的是关于Apache Storm的开发环境设置和示例代码。Apache Storm是一个开源的分布式实时计算系统,它允许开发者处理无限的数据流,常用于大数据实时处理...
Apache Storm(apache-storm-2.3.0.tar.gz) 是一个免费的开源分布式实时计算系统。Apache Storm 可以轻松可靠地处理无限制的数据流,实时处理就像 Hadoop 进行批处理一样。Apache Storm 很简单,可以与任何编程语言...
**Storm API实现词频统计详解** 在大数据处理领域,Apache Storm是一个实时计算系统,它能够持续处理数据流,实现低延迟、高吞吐量的数据分析。在这个“Storm API实现词频统计”的案例中,我们将深入探讨如何利用...
01-storm简介 02-storm部署-1 03-storm部署-2 04-storm部署概念 05-streamgrouping 06-storm组件生命周期 07-storm可靠性1 08-storm可靠性2
Storm是一个开源的分布式实时计算系统,由Twitter开发并开源,其设计目标是让实时处理变得简单、强大且可靠。在Storm中,数据流被抽象为持续不断的Tuple(元组)序列,这些Tuple在网络中的worker节点间进行分布式...
Storm是一个开源的分布式实时计算系统,由Twitter开发并开源,旨在实现高可靠性、可伸缩性、快速处理无界数据流。Storm可以与Hadoop进行类比,但相较于Hadoop处理批量数据的批处理方式,Storm更专注于处理实时数据流...
### Storm源码分析 #### 一、Storm简介与应用场景 Apache Storm是一款开源的分布式实时计算系统,它提供了简单而强大的API来定义数据流处理逻辑,同时保证了消息处理的容错性和高性能。Storm的设计目标是成为实时...