Apache Spark vs Akka [关闭]

问题描述 投票:55回答:4

[能否请您告诉我Apache Spark和AKKA之间的区别,我知道这两个框架都旨在对分布式和并行计算进行编程,但是我看不到它们之间的联系或区别。

此外,我想获得适用于每个案例的用例。

parallel-processing apache-spark akka bigdata distributed-computing
4个回答
93
投票

Apache Spark实际上是基于Akka构建的。

Akka是用于在Scala或Java中创建反应性,分布式,并行和弹性并发应用程序的通用框架。 Akka使用Actor模型来隐藏所有与线程相关的代码,并为您提供真正简单而有用的界面,以轻松实现可伸缩且容错的系统。 Akka的一个很好的例子是实时应用程序,该应用程序使用和处理来自手机的数据并将其发送到某种存储设备。

Apache Spark(不是Spark Streaming)是一个使用map-reduce算法的通用版本处理批处理数据的框架。 Apache Spark的一个很好的例子是对存储数据的一些指标进行计算,以更好地了解您的数据。数据将按需加载和处理。

Apache Spark Streaming能够以几乎实时的小批量数据执行类似的操作和功能,就像您已经存储了数据一样。

2016年4月更新

从Apache Spark 1.6.0起,Apache Spark不再依赖Akka进行节点之间的通信。感谢@EugeneMi的评论。


28
投票

Spark用于数据处理,就像Akka在应用程序中管理数据和指令流一样。


16
投票

Apache Spark:


0
投票

在Apache Spark,Akka或Kafka之间进行选择时,偏向于要在其中部署它们的用例(尤其是要设计的服务的上下文和背景)。其中一些因素包括延迟,数量,第三方集成以及所需处理的性质(例如批处理或流式传输等)。我发现此资源特别有用-https://conferences.oreilly.com/strata/strata-ca-2016/public/schedule/detail/47251

© www.soinside.com 2019 - 2024. All rights reserved.