Apache Spark与Apache Storm

Apache Spark和Apache Storm有什么区别? 每个适合的用例是什么?

Apache Spark是一个内存分布式数据分析平台,主要针对加快批量分析作业,迭代机器学习作业,交互式查询和graphics处理。

Spark的主要区别之一是使用RDD或弹性分布式数据集。 RDD对于并行运算符的stream水线计算是非常好的,并且根据定义,它是不可变的,这使得Spark能够根据血统信息提供独特的容错forms。 例如,如果您对Hadoop MapReduce作业更快执行感兴趣,则Spark是一个不错的select(尽pipe必须考虑内存要求)。

Apache Storm专注于stream处理或者一些所谓的复杂事件处理。 Storm实现了一种容错方法,用于在事件stream入系统时执行计算或stream水线化多个事件。 人们可以使用Storm将非结构化数据转换成所需格式。

Storm和Spark关注于相当不同的用例。 风暴三叉戟和Spark Streaming之间的“苹果对苹果”比较会更多。 由于Spark的RDD本质上是不可变的,因此Spark Streaming实现了一种在用户定义的时间间隔中“批量”传入更新的方法,该方法可以转换为自己的RDD。 Spark的并行运算符然后可以在这些RDD上执行计算。 这与Storm分别处理每个事件是不同的。

这两种技术之间的一个关键区别在于Spark执行数据并行计算,而Storm执行任务并行计算 。 任何一种devise都是值得了解的权衡。 我会build议检查这些链接。

编辑:今天发现了这个