何为流处理
参考Streaming Systems - Tyler Akidau.pdf这样一本书
何为Storm
storm和Hadoop类似,不过Hadoop上面运行的是MapReduceJobs,Storm上运行的是拓扑topology。也就是Hadoop处理的是大量静态数据,迟早会结束,而Storm运行的topology永远会运行。换句话说,Storm是面向实时数据分析,而Hadoop面向的是离线数据分析。
相关述语说明
- Topology(拓扑):Topolog是一组由Spouts(数据源)和Bolts(数据操作)通过Stream Groupings进行连接组成的图。
- tuple(元组):一次消息传递的基本单元。本来应该是一个key-value的map,但是由于各个组件间传递的tuple的字段名称已经事先定义好(在Topology的main方法中定义好的),所以tuple中只要按序填入各个value就行了,所以就是一个value list.—其实个人可以理解为传送数据的管道。
- Stream:以tuple为单位组成的一条有向无界的数据流。(就是tuple在各个组件中流动时的描述)
- Spout组件:继承了BaseRichSpout等基类的类,里面有类的方法进行相关的操作,用于获取数据,并传递数据到Bolt。
- Bolt组件:继承了IBasicBolt等基类的类,里面有类的方法进行相关的操作,用于对Spout组件发送过来的数据进行处理。
- Worker进程:用于运行Topology子集(可能Topology的不同组件(Spout/Bolt)会放在不同的Wor