为什么Spark 1.6不使用Akka?

时间:2016-05-25 22:35:11

标签: apache-spark akka

当我读取Master类的spark-1.6源代码时,receiveAndReply方法似乎没有使用Akka。 [比照here。]

为什么不使用Akka?他们用什么取代了Akka?

1 个答案:

答案 0 :(得分:35)

让Spark独立于Akka的动机在SPARK-5293中有详细描述,这是Akka相关问题的总括任务。

引用原始描述:

  

Spark取决于Akka,[所以]用户不可能依赖不同的版本,过去我们收到了很多请求,要求提供有关此特定问题的帮助。例如,Spark Streaming可能被用作Akka消息的接收者 - 但我们对Akka的依赖要求上游Akka actor也使用相同版本的Akka。

     

由于我们对Akka的使用是有限的(主要用于RPC和单线程事件循环),我们可以用替换的RPC实现和Spark中的常见事件循环替换它。

正如您所看到的,主要原因很简单 - 为用户提供更多创建自己应用程序的灵活性。

同样消除了像Akka这样的复杂依赖关系,而且还没有被Spark广泛使用,这意味着维护成本更低。