大数据学习系列----Storm和Spark和Hadoop对比

Storm和Spark Streaming两个都是分布式流处理的开源框架。但二者之间有一些区别。node

时延

Storm能够实现亚秒级数据处理,每次只处理一条event,而Spark Streaming能够在一个短暂的时间窗口处理多条event。因此说Storm能够实现亚秒级时延,Spark Streaming则有必定的时延。数据库

容错和数据保证

Storm中,每条记录在系统中的移动都须要被标记跟踪,因此Storm只能保证每条记录最少被处理一次,可是容许从错误状态恢复被屡次处理。编程

Spark Streaming仅仅须要在批处理对记录进行跟踪,因此版主每一个批处理记录仅仅被处理一次,即便node节点挂掉。框架

实现和编程API

Storm主要是Clojure语言实现,Spark Streaming由Scala实现。Storm提供了Java API,同时支持其余语言API。Spark Streaming支持Scala和Java语言。分布式

批处理框架集成

Spark Streaming是在Spark框架上运行。能够像使用其余批处理代码同样写Spark Streaming程序,或者在Spark中交互查询。就减小了单独编写流式批处理程序和历史数据处理程序。oop

场景

几千个日志生产者产生日志文件,须要进行一些ETL操做如数据库。日志

若是用Hadoop,须要先存入hdfs,须要切分文件,调度计算。 若是使用Storm,一个程序监控日志产生,产生一行经过传输系统发给Storm,Storm直接处理,处理完毕后入数据库,整个过程能够达到毫秒级别。orm

Hadoop使用磁盘做为数据中介,Storm数据直接在内存中流转。一个批处理,基于任务调度;一个实时处理,基于流。内存

相关文章
相关标签/搜索