【问题标题】:Why Spark 1.6 does not use Akka?为什么 Spark 1.6 不使用 Akka?
【发布时间】:2016-05-25 22:35:10
【问题描述】:

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

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

【问题讨论】:

    标签: apache-spark akka


    【解决方案1】:

    SPARK-5293 很好地描述了使 Spark 独立于 Akka 背后的动机,这是 Akka 相关问题的总括任务。

    引用原描述:

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

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

    如您所见,主要原因很简单 - 让用户在创建自己的应用程序时更加灵活。

    还去除了像 Akka 这样的复杂依赖,反正 Spark 还没有广泛使用它,这意味着维护成本更低。

    【讨论】:

    • Akka 被 org.apache.spark.rpc 取代,org.apache.spark.rpc 提供与 Akka 类似的接口,但使用 Netty 和 Java NIO。见this commit
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 2013-11-22
    • 2015-07-23
    • 2016-05-14
    • 2016-05-15
    • 2014-02-13
    相关资源
    最近更新 更多