Storm是一个分布式、容错的实时计算系统。 Storm是由BackType开发的实时处理系统,由Twitter开源 在2013年的时候,Storm进入Apache社区进行孵化,最终进 入了Apache顶级项目
Storm实时低延迟的两个原因:- Storm进程是常驻内存的,不像hadoop里面的不断启停, 就没有不断启停的开销。
- 第二点:Storm的数据不经过磁盘,都在内存中, 处理完了就没有了,数据的交换经过网络 ,这些就避免了磁盘IO的开销。所以Storm延迟低。
- 异常处理
- 消息可靠性保障
Storm有个UI可以看到跑在上面的程序监控
二、Hadoop和Storm的区别- 数据来源:HADOOP是HDFS上某个文件夹下的可能是成TB的数据,STORM是实时新 增的某一笔数据 – 处理过程:HADOOP是分MAP阶段到REDUCE阶段,STORM是由用户定义处理流程, 流程中可以包含多个步骤,每个步骤可以是数据源(SPOUT)或处理逻辑(BOLT)
- 是否结束:HADOOP最后是要结束的,STORM是没有结束状态,到最后一步时,就停 在那,直到有新 数据进入时再从头开始
- 处理速度:HADOOP是以处理HDFS上大量数据为目的,速度慢,STORM是只要处理 新增的某一笔数据即可 可以做到很快。
- 适用场景:HADOOP是在要处理一批数据时用的,不讲究时效性,要处理就提交一个 JOB,STORM是要处理 某一新增数据时用的,要讲时效性
- 与MQ对比:HADOOP没有对比性,STORM可以看作是有N个步骤,每个步骤处理完就 向下一个MQ发送消息, 监听这个MQ的消费者继续处理
twitter列举了storm的三大作用领域: 1) 信息流处理(Stream Processing) Storm可以用来实时处理新数据和更新数据库,兼具容错性和可扩展性。 2) 连续计算(Continuous Computation) Storm可以进行连续查询并把结果即时反馈给客户,比如将Twitter上的热门话题发送到客户端。 3) 分布式远程过程调用(Distributed RPC) Storm可以用来并行处理密集查询,Storm的拓扑结构是一个等待调用信息的分布函数,当它收到一条调用信息后,会对查询进行计算,并返回查询结果。