Apache spark 为什么Spark 1.6不使用Akka?

Apache spark 为什么Spark 1.6不使用Akka?,apache-spark,akka,Apache Spark,Akka,当我阅读该类的spark-1.6源代码时,receiveAndReply方法似乎没有使用Akka。[比照……] 为什么不使用Akka?他们用什么取代了Akka?使Spark独立于Akka背后的动机在《Akka相关问题的总括任务》中有很好的描述 引用原始描述: Spark依赖于Akka,[因此]用户不可能依赖不同的版本,我们在过去收到过很多关于这个特定问题的请求。例如,Spark Streaming可以用作Akka消息的接收器,但我们对Akka的依赖要求上游Akka参与者也使用相同版本的Akka

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


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

使Spark独立于Akka背后的动机在《Akka相关问题的总括任务》中有很好的描述

引用原始描述:

Spark依赖于Akka,[因此]用户不可能依赖不同的版本,我们在过去收到过很多关于这个特定问题的请求。例如,Spark Streaming可以用作Akka消息的接收器,但我们对Akka的依赖要求上游Akka参与者也使用相同版本的Akka

由于Akka的使用是有限的(主要用于RPC和单线程事件循环),我们可以用替代RPC实现和Spark中的公共事件循环来替代它

正如您所看到的,主要原因很简单——让用户在创建自己的应用程序时具有更大的灵活性


另外,还删除了复杂的依赖项,比如Akka,它还没有被Spark广泛使用,这意味着维护成本更低。

Akka被
org.apache.Spark.rpc
取代,后者提供了与Akka类似的接口,但使用了Netty和Java NIO。看见