storm 常用类

获得

<dependency>
	<groupId>org.apache.storm</groupId>
	<artifactId>storm-core</artifactId>
	<version>0.9.5</version>
</dependency>

常用类

backtype.storm.topology.TopologyBuilder
用来建立topology。
SpoutDeclarer backtype.storm.topology.TopologyBuilder.setSpout(String id, IRichSpout spout, Number parallelism_hint)
给topology设置spout。parallelism_hint为将要执行这个spout的任务数,每个任务对应着一个线程。
BoltDeclarer 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。

backtype.storm.topology.IComponent

一个接口,表明topology的组件。

void backtype.storm.topology.IComponent.declareOutputFields(OutputFieldsDeclarerdeclarer)
声明当前topology的所有stream的输出模式。

backtype.storm.topology.OutputFieldsDeclarer

输出字段的声明者。

void backtype.storm.topology.OutputFieldsDeclarer.declare(Fields fields)

用默认的stream id进行声明。

void backtype.storm.topology.OutputFieldsDeclarer.declareStream(String streamId, Fields fields)

用指定的stream id与field进行声明

backtype.storm.task.TopologyContext
一个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

backtype.storm.tuple.Tuple
tuple是storm中的主要数据结构之一,是喷口与闪电之间发送消息的基本单位。它是一个被命名的values的list,其中的每一个value都可以是任意类型。
backtype.storm.tuple.Fields.Fields(String... fields)
Fields类的构造函数,形参列表为(String... fields)。
调试中的一个tuple见图1.

图1:调试中的一个tuple

Spout

backtype.storm.spout.ISpout

这是spout类的核心接口。它有一下几种方法。

void backtype.storm.spout.ISpout.open(Map conf, TopologyContext context, SpoutOutputCollector collector)

当这个组件的task在集群中的一台worker内被初始化的时候,该函数被调用。它向spout提供了该spout执行的环境。

void backtype.storm.spout.ISpout.close()
当spout被关闭时此方法得到调用。

void backtype.storm.spout.ISpout.activate()

当spout从抑制状态变为激活状态时调用。

void backtype.storm.spout.ISpout.deactivate()

当spout被抑制时调用。此时它的nextTuple()方法不会被调用。

void backtype.storm.spout.ISpout.nextTuple()
当该方法被调用时,要求SpoutOutputCollector喷射tuple。
void backtype.storm.spout.ISpout.ack(Object msgId)
表示从此spout喷出的带有messageID的tuple已被完全处理。该方法的一个典型实现是把消息从队列中移走,避免被再次处理。

void backtype.storm.spout.ISpout.fail(Object msgId)
表示从此spout喷出的带有messageID的tuple未被完全处理。该方法的一个典型实现是把该消息再次放入队列,以便被再次发送。

backtype.storm.topology.IRichSpout
继承自ISpout与IComponent。

backtype.storm.spout.SpoutOutputCollector

用于spout的tuple喷射。注意与backtype.storm.task.OutputCollector的区别。

List<Integer> backtype.storm.spout.SpoutOutputCollector.emit(List<Object> tuple)
喷出一个tuple到默认的输出stream,此steam没有消息id,所以storm没有办法跟踪,因此对于这个tuple将永远不会调用ack()与fail()方法。

Bolt

backtype.storm.task.IBolt

这是bolt类的核心接口。有以下几个方法:

void backtype.storm.task.IBolt.prepare(Map stormConf, TopologyContext context, OutputCollector collector)
当这个组件的task在集群中的一台worker内被初始化的时候,该函数被调用。它向bolt提供了该bolt执行的环境。

void backtype.storm.task.IBolt.execute(Tuple input)
处理输入的一个单一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的输入。

例子

时间: 2024-08-04 10:12:06

storm 常用类的相关文章

JSP与JavaMail之2(常用类介绍)

js 3.JavaMail的常用类介绍  事先说明:  没用过JavaMail的人可能看不懂这些介绍,不过不要紧,后面的文章有具体的实例,到时也可倒回来查看这些类的用法.  (1) javax.mail.Properties类  JavaMail需要Properties来创建一个session对象.它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机.  用法:  Properties props = new Properties ();  props.put(&q

使用.net framework中常用类在2.0版中的新功能

在上一篇<浏览.NET Framework 2.0 类型库中新增的常用功能>一文中我主要列了几个新增的常用主件,本文作为小结主要针对一些常用类的扩展来讲最近在使用C# 2.0 的时候发现的几个新特征,讲得不当之处请网友指正. 1.Exception异常基类在2.0下,Exception基类增加了Data属性,原型如下,public virtual IDictionary Data {get;}可见其实现了IDictionary接口,用来存储异常的自定义信息,由此想到在ExceptionMana

MFC中常用类、宏、函数的简单介绍

闲来无事,整理了一下MFC中常用的类.宏.函数. 常用类 CRect:用来表示矩形的类,拥有四个成员变量:top left bottom right.分别表是左上角和右下角的坐标.可以通过以下的方法构造: CRect( int l, int t, int r, int b ); 指明四个坐标 CRect( const RECT& srcRect ); 由RECT结构构造 CRect( LPCRECT lpSrcRect ); 由RECT结构构造 CRect( POINT point, SIZE

马士兵J2SE-第六章-常用类-基本数据类型包装类、Maths类、File类

基本数据类型包装类 public class test { public static void main(String[] args) { Integer i=new Integer(100); Double d=new Double("123.456"); int j=i.intValue()+d.intValue(); float f=i.floatValue()+d.floatValue(); System.out.println(j); System.out.println(

面向对象-关于php 一些常用类 的 配置参数问题

问题描述 关于php 一些常用类 的 配置参数问题 比如我想写一个 文件上传的类文件 那么肯定要配置 上传大小 ,上传类型限制 , 还有文件命名规范 文件夹的创建规则 , 这些 配置一般要以什么样的形式定义. 比如是实例化的时候 传参 或者是外部定义 全局变量 或者是常量的形式 一般框架的做法是什么样的呢 还望不吝赐教 感激 解决方案 有些框架是通过实例化类时进行传参设置,有些是通过实例化类后配置 ,要看你是怎样去设计了,TP是后者 比如: $upload = new UploadFile();

黑马程序员 五、异常处理和常用类)

Java帮帮-IT资源分享网  五.黑马程序员-异常处理和常用类 第五篇  1.异常 异常:就是不正常,是指程序在运行时出现的不正常情况.其实就是程序中出现的问题. 这个问题按照面向对象思想进行描述,并封装成了对象.因为问题的产生有产生的原因.有 问题的名称.有问题的描述等多个属性信息存在.当出现多属性信息最方便的方式就是将这 些信息进行封装.异常就是 java 按照面向对象的思想将问题进行对象封装.这样就方便于 操作问题以及处理问题. 出现的问题有很多种,比如角标越界,空指针等都是.就对这些问

asp.net C#常用类和方法

asp教程.net c#常用类和方法 1.datetime   数字型   system.datetime   currenttime=new   system.datetime();   1.1   取当前年月日时分秒   currenttime=system.datetime.now;   1.2   取当前年   int   年=currenttime.year;   1.3   取当前月   int   月=currenttime.month;   1.4   取当前日   int  

WPF 3D 常用类(1)

原文:WPF 3D 常用类(1) 几何数据相关类 Geometry3D 抽象类, 用于定义物体的几何数据, 可用于计算HitTest和BoundingBox   MeshGeometry3D Geometry3D的子类, 定义网格的顶点, 三角形顶点, 法线, Texture(纹理)的座标 常用属性: Positions, TriangleIndices, Noramls, TextureCoordinates   模型相关类 (模型=几何数据+变形(位置,旋转,尺寸)+材质) Model3D

android 框架层 常用类介绍

名称 功能描述 示意图   activitymanager 管理应用程序的周期并提供常用的回退功能 window manager 窗口管理者 content provider 用于访问另一个的数据,或者共享自己的数据 视图系统 可以构建app的控件类型,比如button,listview等等等, 通知管理器 应用程序能够显示自定义的提示的信息   包管理器 管理android安装的程序 资源管理器 提供资源的管理器 这就是android框架层的一些常用类