Maz*_*ine 5 rpc akka netty apache-spark
Spark 1.6 可以配置为使用 AKKA 或 Netty 进行 RPC。如果配置了 Netty,这是否意味着 Spark 运行时不使用 Actor 模型进行消息传递(例如,在工作程序和驱动程序块管理器之间),或者甚至在 Netty 配置的情况下,依赖于 Netty 使用自定义简化的 Actor 模型。
我认为 AKKA 本身依赖于 netty,而 Spark 仅使用 AKKA 的一个子集。不过,与 Netty 相比,配置 AKKA 是否更具有可扩展性(就工作人员数量而言)?对这个特定的火花配置有什么建议吗?
添加到 @user6910411s 指针,这很好地解释了设计决策。
正如链接所解释的,灵活性和消除对 Akka 的依赖是设计决策。
问题 :
我认为 AKKA 本身依赖于 netty,而 Spark 仅使用 AKKA 的一个子集。不过,与 Netty 相比,配置 AKKA 是否更具有可扩展性(就工作人员数量而言)?对这个特定的火花配置有什么建议吗?
是的 Spark 1.6 可以配置为使用 AKKA 或 Netty 进行 RPC。
可以通过spark.rpc
ie进行配置val rpcEnvName = conf.get("spark.rpc", "netty")
,默认是netty。
这里有更多见解,比如什么时候去做什么......
Akka 和 Netty 都处理异步处理和消息处理,但它们在不同级别的 WRT 可扩展性上工作。
Akka是一个更高级别的框架,用于构建事件驱动、可扩展、容错的应用程序。它重点关注用于消息处理的 Actor 类。Actor 具有层级结构,父 Actor 负责监督其子 Actor。
Netty也可以处理消息,但它的级别要低一些,并且更多地处理网络。它的核心是蔚来。Netty 具有许多使用各种协议(如 HTTP、FTP、SSL 等)的功能。此外,您还可以对线程模型进行更细粒度的控制。
Netty 实际上是在 Akka wrt 分布式 Actor 中使用的。
因此,尽管它们都是异步且面向消息的,但使用 Akka,您可以在问题域中进行更抽象的思考,而使用 Netty,您可以更专注于网络实现。
spark.rpc
标志,我的意思val rpcEnvName = conf.get("spark.rpc", "netty")
是不可用。在Spark2.0 代码中参见 RpcEnv.scala。 归档时间: |
|
查看次数: |
1142 次 |
最近记录: |