标签:
Storm风暴和Spark Streaming都是分布式流处理的开源框架。区别如下:
1、处理延时和吞吐量
Storm处理的是每次传入的一个事件,Spark Streaming是处理某个时间段窗口内的事件流,Storm处理一个事件可以达到秒内的延迟,而Spark Streaming则有几秒钟的延迟。因此,Spark Streaming比Storm的延时更长,但是吞吐量比Storm大。
2、容错、数据保证
Spark Streaming在容错方面提供了对状态计算的更好的支持。在Storm中,任一条单独的记录在经过系统时必须可以被追踪到,所以Storm仅保证所有记录都会至少处理一次,但是从错误中恢复过来时允许出现重复记录。这意味着可变状态有可能被错误的更新两次。
3、支持的API
Storm(由Closure语言开发的)支持JAVA编程,Spark支持Scala编程,也支持java开发。
总结:,如果你需要秒内的延迟,Storm是一个不错的选择,而且没有数据丢失。如果你需要有状态的计算,而且要完全保证每个事件只被处理一次,Spark Streaming则更好。Spark Streaming编程逻辑也可能更容易,因为它类似于批处理程序(Hadoop),特别是在你使用批次(尽管是很小的)时。
另参阅:
http://www.uml.org.cn/sjjm/201408282.asp
标签:
原文地址:http://blog.csdn.net/zcc_0015/article/details/46418189