Spark与Storm的区别

Spark与Storm的区别

来自anhldbk的提问

Apache Spark vs. Apache Storm

Apache SparkApache Storm之间的区别是啥?它们各自适用哪些场景呢?

来自plambre的最佳回答

Apache Spark是一个基于内存的分布式数据分析平台-基本目标是加速批量分析任务,迭代式机器学习任务,交互式请求和图表处理。

Spark的一个基本特征是它对RDDs(Resilient Distributed Datasets)的使用。RDDs对于流水线式的并行操作非常有益,另外,基于世系信息,RDDs使Spark具备了一种独特的容错方式。如果你对Spark感兴趣,例如需要更快地执行一个Hadoop MapReduce任务,那么Spark是一个很不错的选择(尽管内存开销是你不得不考虑的事情)。

Apache Storm聚焦于流式处理或者说是复杂的事件处理。随着一个事件流入系统,对这个事件执行一次计算或者流水线式的多次计算时,Storm对这个过程实现了一种容错方法。你可以使用Storm对非结构化数据进行转换:随着它流入系统,变成需要的格式。

Storm和Spark聚焦在完全不同的应用范畴,更加具有可比性的是Storm Trident和Spark Streaming。Spark的RDDs是固有不变的,Spark Streaming实现了一种方法,将按用户定义的时间间隔批量传入的更新操作,转换为它们自己的RDDs。然后Spark的并行操作就可以在这些RDDs上执行计算了。这跟Storm单独地处理各个事件是完全不同的。

两种技术的一个关键不同是,Spark执行数据并行计算,而Storm执行任务并行计算,两种设计上的折衷都值得了解。

推荐看看这篇文章

参考资料

本文译自Apache Spark vs. Apache Storm

2 thoughts on “Spark与Storm的区别

  1. Pingback: Milana Travis

发表评论

电子邮件地址不会被公开。 必填项已用*标注