Stream(流)
什么是流?
以分布式并发的方式处理和创建的无限的元组序列。
在申明每个流的时候,会给它一个ID标识符。
OutputFieldsDeclarer
Spouts
什么是Spouts
Spouts是一个拓扑里流的源头。也就是说,流的起点是Spouts。
Spouts从外部读入元组数据并将其放入到拓扑中。
可信赖Spouts和不可信赖Spouts
- 可信赖的spouts当storm处理数据失败的时候会重新提交数据给storm处理。
不可信赖的spouts当把数据传送到拓扑后就不管了,不管storm是否成功处理数据。
IRichSpout
写spouts时必须要实现的接口。
Bolts
什么是Bolts
拓扑中所有的数据处理都是在bolts
中完成的。
bolts的主要方法是execute,它的作用是用来输入一个新的元组。
Bolts发送一个新的元组用OutputCollector对象。
Bolts在元组处理完成的时候必须要调用 OutputCollector对象的ack方法,这样做的目的是为了通知Storm元组处理完成。
Storm提供了IBasicBolt接口来自动完成确认动作。
OutputCollector是线程安全的对象,可以在任何时候被调用。
IRichBolt:bolts的通用接口。
IBasicBolt:定义bolts做过滤或其它简单功能的时候用的接口。
OutputCollector:bolts用这个对象的势力发送元组到输出流。