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

原创
2017/06/29 21:57
阅读数 632

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

时延

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中交互查询。就减少了单独编写流式批处理程序和历史数据处理程序。

场景

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

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

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

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部