storm 常用类
获得
<dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-core</artifactId> <version>0.9.5</version> </dependency>
常用类
用来建立topology。
Spout Declarer backtype.storm.topology.TopologyBuilder. setSpout(String id, IRichSpout spout, Number parallelism_hint)
给topology设置spout。parallelism_hint为将要执行这个spout的任务数,每个任务对应着一个线程。
Bolt Declarer backtype.storm.topology.TopologyBuilder. setBolt(String id, IRichBolt bolt, Number parallelism_hint)
给topology设置bolt。
backtype.storm. Config
此类拥有一系列成员方法,用来设置对应的参数。
void backtype.storm.StormSubmitter. submitTopology(String name, Map stormConf, StormTopology topology)
向storm集群提交topology。
声明当前topology的所有stream的输出模式。
一个topologyContext会在bolt的prepare()和spout的open()方法中传递给bolt和spout。该类包含了组件在topology内的位置信息,如任务id,输入与输出等。
List<Integer> backtype.storm.spout.SpoutOutputCollector. emit(List<Object> tuple)
喷出一个tuple到默认的输出stream,此steam没有消息id,所以storm没有办法跟踪,因此对于这个tuple将永远不会调用ack()与fail()方法。
List<Integer> backtype.storm.task.OutputCollector. emit(Tuple anchor, List<Object> tuple)
喷射一个新的tuple到默认的抛锚在一个单一tuple的流上。
Tuple
tuple是storm中的主要数据结构之一,是喷口与闪电之间发送消息的基本单位。它是一个被命名的values的list,其中的每一个value都可以是任意类型。
backtype.storm.tuple.Fields. Fields(String... fields)
Fields类的构造函数,形参列表为(String... fields)。
调试中的一个tuple见图1.
Spout
当spout被关闭时此方法得到调用。
当该方法被调用时,要求SpoutOutputCollector喷射tuple。
void backtype.storm.spout.ISpout. ack(Object msgId)
表示从此spout喷出的带有messageID的tuple已被完全处理。该方法的一个典型实现是把消息从队列中移走,避免被再次处理。
表示从此spout喷出的带有messageID的tuple未被完全处理。该方法的一个典型实现是把该消息再次放入队列,以便被再次发送。
backtype.storm.topology. IRichSpout
继承自ISpout与IComponent。
喷出一个tuple到默认的输出stream,此steam没有消息id,所以storm没有办法跟踪,因此对于这个tuple将永远不会调用ack()与fail()方法。
Bolt
当这个组件的task在集群中的一台worker内被初始化的时候,该函数被调用。它向bolt提供了该bolt执行的环境。
处理输入的一个单一tuple。
backtype.storm.topology. IRichBolt
继承自IBolt与IComponent。
backtype.storm.task.OutputCollector
输出收集器用于发射来自IRichBolt的tuple。
List<Integer> backtype.storm.task.OutputCollector.emit(Tuple anchor, List<Object> tuple)
喷射一个新的tuple到默认的抛锚在一个单一tuple的流上。
List<Integer> backtype.storm.task.OutputCollector.emit(String streamId, List<Object> tuple)
向指定的stream中喷射数据。
backtype.storm.topology.InputDeclarer.shuffleGrouping(String componentId)
用于声明接收哪些spout或bolt的输出作为该bolt的输入。
BoltDeclarer backtype.storm.topology.InputDeclarer.localOrShuffleGrouping(String componentId)
用于声明接收哪些spout或bolt的输出作为该bolt的输入。
BoltDeclarer backtype.storm.topology.InputDeclarer.fieldsGrouping(String componentId, String streamId, Fields fields)
用于声明接收指定spout或bolt的指定stream的指定fields作为该bolt的输入。
BoltDeclarer backtype.storm.topology.InputDeclarer.allGrouping(String componentId, String streamId)
用于声明接收指定spout或bolt的指定stream作为该bolt的输入。
例子
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
ERROR: Found lingering reference file hdfs
Found lingering reference异常 ERROR: Found lingering reference file hdfs://jiujiang1:9000/hbase/month_hotstatic/5af24d51488823419d155283441c2d0f/c/9b58bc5e853f445e9f28b98a36da6d04.b330aa24d0e3652ae89e6674fc2b3689 官方解决: 第一种解决:hbase hbck -fixReferenceFiles month_hotstatic 另一种方法: #http://stackoverflow.com/questions/17810443/error-found-inconsistency-in-table-hbase This looks like you had a failed region split, see [HBASE-8052] (https://issues.apache.org/jira/browse/HBASE-8502) for more details. This...
- 下一篇
Hadoop项目实战-用户行为分析之应用概述(三)
1.概述 本课程的视频教程地址:《项目工程准备》 本节给大家分享的主题如下图所示: 下面我开始为大家分享今天的第三节的内容——《项目工程准备》,接下来开始分享今天的内容。 2.内容 从本节开始,我们将进入到Hadoop项目的工程准备一节学习,本节课程为大家介绍的主要知识点有一下内容,如下图所示: 首先,我给大家介绍开发Hadoop项目的IDE和相关插件的使用,其内容包含的知识点如下图所示: 在开发Hadoop项目时,我们使用的开发语言时Java,编写Java的相关代码,都是在IDE中来完成的。 IDE为开发者编码提供了方便。 课程中我所使用的IDE是JBoss Studio 8,这是RedHat公司开发的一款IDE,其本质是Eclipse,只是该IDE集成的插件比较丰富, 大家若是需要可以到它的官网去下载。另外,在开发过程当中,我们还需要一个比较重要的插件——Hadoop插件。该插件在开发Hadoop项目时,使用非常方便。该插件一个开源项目,可以在Github上搜索到该插件的开源项目。 然后,我们来看看Hadoop工程的创建需要注意哪些关键步骤,其内容包含的知识点如下图所示: 在熟悉基...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- 设置Eclipse缩进为4个空格,增强代码规范
- Mario游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Redis,开启缓存,提高访问速度