答案 0 :(得分:35)
让Spark独立于Akka的动机在SPARK-5293中有详细描述,这是Akka相关问题的总括任务。
引用原始描述:
Spark取决于Akka,[所以]用户不可能依赖不同的版本,过去我们收到了很多请求,要求提供有关此特定问题的帮助。例如,Spark Streaming可能被用作Akka消息的接收者 - 但我们对Akka的依赖要求上游Akka actor也使用相同版本的Akka。
由于我们对Akka的使用是有限的(主要用于RPC和单线程事件循环),我们可以用替换的RPC实现和Spark中的常见事件循环替换它。
正如您所看到的,主要原因很简单 - 为用户提供更多创建自己应用程序的灵活性。
同样消除了像Akka这样的复杂依赖关系,而且还没有被Spark广泛使用,这意味着维护成本更低。