火花 2.1.1 属性 spark.akka.threads = 12

Spark 2.1.1 with property spark.akka.threads = 12

我正在使用 Apache Spark 2.1.1 和 Spark JobServer Spark 2.0 预览版。

我在 spark UI 环境选项卡上看到有一个配置 属性 spark.akka.threads = 12 但在文档中Spark 2.1.1 Configuration 这个参数不存在,我在 Spark 1.2.1 配置中找到了它,默认情况下它有 4 个,描述如下:

Number of actor threads to use for communication. Can be useful to increase on large clusters when the driver has a lot of CPU cores.

我在一台包含 Master 和 Worker 的机器上独立使用 spark。

搜索有关它的信息,我找到了一个建议 (here),他说不应大于 8。

我的问题:

如果我没有设置这个属性,Jobserver 会设置它吗?如果是,如果这个 属性 不再出现在 spark 官方文档中,为什么要这样做?

什么样的问题会导致小型非集群 spark standalone 的这个高参数?

Spark 1.6 和 2.x 未使用 Akka,这就是它未在文档中列出且无法设置的原因。有关详细信息,请参阅 this Jira and this commit

该 Jira 任务的描述:

A lot of Spark user applications are using (or want to use) Akka. Akka as a whole can contribute great architectural simplicity and uniformity. However, because Spark depends on Akka, it is not possible for users to rely on different versions, and we have received many requests in the past asking for help about this specific issue. For example, Spark Streaming might be used as the receiver of Akka messages - but our dependency on Akka requires the upstream Akka actors to also use the identical version of Akka.

Since our usage of Akka is limited (mainly for RPC and single-threaded event loop), we can replace it with alternative RPC implementations and a common event loop in Spark.

Akka 被 Spark RPC 取代,它使用 Netty

另请参阅:Why Spark 1.6 does not use Akka? - 非常相似的答案,但问题更直接为什么不使用,而不是如果使用

您在某些配置文件中有此 属性 或使用 --conf 设置。配置文件中的每个配置 属性 或使用 --conf 设置的每个配置 属性 都将在 Spark UI

中列出