什么是流计算
- 流计算概念: 流计算是针对数据流的实时计算
- 流计算应用场景:流计算是针对流数据的实时计算,其主要应用在于产生大量流数据、同时对实时性要求高的领域
流计算处理的流程
- 数据实时采集:提供实时数据,低延迟,稳定可靠
- 数据实时计算
- 实时查询服务
离线分析延时较大,需要实时分析数据
Twitter Storm
Twitter分层的数据处理架构由Hadoop和ElephantDB组成批处理系统,Storm和Cassandra组成实时系统,实时系统处理的结果最终会由批处理系统来修正,正是这个观点使得Storm的设计与众不同
Storm 设计思想
- Storm对于流Stream的抽象:流是一个不间断的无界的连续Tuple(元组,是元素有序列表)
- Storm认为每个Stream都有一个源头,它将这个源头抽象为Spouts
- Storm将流的中间状态转换抽象为Bolts,Bolts可以处理Tuples,同时它也可以发送新的流给其他Bolts使用
- 为了提高效率,在Spout源接上多个Bolts处理器。Storm将这样的无向环图抽象为Topology(拓扑)