storm api
来源:互联网 发布:淘宝宝贝排序 编辑:程序博客网 时间:2024/06/07 16:39
storm每个组件都是component组件的子类
其中用的最多的是iRichSpout iBasicBolt iRichBolt BaseComponent
BaseComponent是storm提供的”偷懒“的类,它及其子类都或多或少实现了其接口定义的部分方法。这样我们用的时候,而不是自己每次都写所有方法
spout的最顶层抽象是iSpout接口
====
open()是初始化方法
nextTuple()循环发射数据
ack()成功处理tuple回调方法
fail()处理失败tuple回调方法
active和deactive:spout可以被暂时激活和关闭
close方法在该spout关闭前执行,但是并不能得到保证其一定被执行,kill -9时不执行,Storm kill {topoName}时执行
====
所以关闭的时候一般不会用kill -9
但是我们在关闭nimbus和supervisor的时候我们一般都是用kill -9的方式,因为只有这种方式
ibolt是bolt最高级的封装,定义了三个方法
prepare方法进行初始化,传入当前执行的上下文
execute接受一个tuple进行处理,也可emit数据到下一级组件
cleanup 同ispout的close方法,不保证一定执行,我们正常退出的时候执行
ibolt继承了Serializable,我们在nimbus上提交了topology以后,创建出来的bolt会序列化后发送到具体执行的worker(工作进程)上去。worker在执行该bolt时,会先调用prepare方法传入当前执行的上下文。
execute接受一个tuple进行处理,并用prepare方法传入的outputcollector的ack方法(表示成功)或fail(表示失败)来反馈处理结果
还可以通过outputcollector的emit方法吧结果发射到下一级组件
IBasicBolt接口,实现该接口的Bolt不用在代码中提供反馈结果,storm内部会自动反馈成功,如果你确定要反馈失败,可以抛出FailedException
当然trident均不用显性调用ack和fall,框架会自动调
实现一个bolt,可以实现irichbolt接口或继承bashrichBolt,如果不想自己处理结果反馈,可以实现ibasicbolt接口或继承basebasicbolt,它实际上相当于自动做了prepare方法和collect.emit.ack(inputTuple)
一个简单的使用见:https://github.com/zengxiaosen/stormlearning01.git
- storm -api
- storm api
- Storm Trident API 实践
- Storm Trident API实践
- storm trident api
- storm-[6]-Trident API
- storm记录--8-- Storm基本API
- Storm Trident API总结-1
- Storm Trident API总结-2
- Storm Trident API 使用详解
- Storm专题二:Storm Trident API 使用详解
- Storm——3、 Storm Trident API 实践
- storm简单易用的API
- 使用Thrift API监控Storm集群
- Storm高级原语-Trident API
- storm学习 相关API介绍(转)
- storm使用API远程杀死topology
- [Storm中文文档]Trident API概览
- js学习笔记(六)Email验证
- PHP5中使用PDO连接数据库的方法
- JavaEE笔记四:JSP的构成及处理过程
- 【POJ1077】Eight-A*+康托展开
- 在搜集VI的途中。。我又接触到一款软件
- storm api
- 2016.10.05【初中部 NOIP普及组 】模拟赛
- 使用Apache POI绘制折线图
- 利用SetUnhandledExceptionFilter获取程序异常时的DUMP文件
- (五)Servlet就是这样-ServletConfig和ServletContext对象
- Spark简介
- 出现java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/ConditionalTagSupport
- 基数排序
- Java中的字节流、缓冲流