Storm是最流行的实时流计算框架之一,它提供了可容错分布式计算所要求的基本原语和保障机制,可满足大容量关键业务应用的需求.
对海量数据进行批处理运算,Hadoop依旧保持着无法撼动的地位,但是对实时性要求较高的应用场景中,Hadoop就显得力不从心。它需要将数据先落地存储到HDFS上,然后再通过MapReduce进行计算,这样的批处理运算流程使它很难将延时缩小到秒级.
Storm topology的组成
Storm分布式计算结构称为topology(拓扑),由stream(数据流),spout(数据流的生成者),bolt(运算)组成.
Stream
Storm的核心数据结构使tuple,tuple是包含了一个或者多个键值对的列表,Stream是由无限制的tuple组成的序列
spout
spout代表一个Storm topology的主要数据入口,充当采集器的角色,连接到数据源,将数据转化为一个个tuple,并将tuple作为数据流进行发射.
bolt
将一个或者多个数据流作为输入,对数据实施运算后,选择性地输出一个或者多个数据流
topology的开发
添加Storm依赖
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-core</artifactId>
</dependency>
实现SentenceSpout
实现bolt
搭建集群
参考资料
Storm分布式实时计算模式