Spark 2.1.1,属性spark.akka.threads = 12

时间:2017-05-11 09:03:06

标签: apache-spark spark-jobserver

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

我在spark UI环境标签上看到有一个配置属性 spark.akka.threads = 12 ,但是在Spark 2.1.1 Configuration的文档中,此参数并没有&#39 ; t存在,我在Spark 1.2.1配置中找到它,默认情况下它有4个,具有以下描述:

  

用于通信的actor线程数。当驱动程序具有大量CPU核心时,可以增加大型集群。

我在包含Master和Worker的单台机器上使用spark standalone。

正在搜索有关该信息的信息我发现了一条建议(here),他说这不应该大于8。

我的问题:

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

什么样的问题可能导致小型非群集火花独立的这个高参数?

1 个答案:

答案 0 :(得分:2)

Spark 1.6和2.x没有使用Akka,这就是为什么它没有在文档中列出而且无法设置。有关详细信息,请参阅this Jirathis commit

该Jira任务的描述:

  

许多Spark用户应用程序正在使用(或想要使用)Akka。阿卡   作为一个整体可以贡献伟大的建筑简洁性   均匀性。但是,因为Spark依赖于Akka,所以不可能   对于用户依赖不同的版本,我们收到了很多   过去要求就此具体问题寻求帮助的请求。对于   例如,Spark Streaming可能被用作Akka的接收者   消息 - 但我们对Akka的依赖需要上游的Akka   演员也使用相同版本的Akka。

     

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

Akka被Spark RPC取代,它使用Netty

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

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