我正在使用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官方文档中不再出现,为什么要这样做呢?
什么样的问题可能导致小型非群集火花独立的这个高参数?
答案 0 :(得分:2)
Spark 1.6和2.x没有使用Akka,这就是为什么它没有在文档中列出而且无法设置。有关详细信息,请参阅this Jira和this 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