独立模式下的Spark并行性

问题描述:

我试图在我的系统中以独立模式运行spark。目前我的系统规格是8核心和32 Gb内存。立足this article我计算出火花的结构如下所示:独立模式下的Spark并行性

spark.driver.memory 2g 
spark.executor.cores 3 
spark.executor.instances 2 
spark.executor.memory 20g 
maximizeResourceAllocation TRUE 

我创造了我的jupyter笔记本电脑这样的火花背景和被检查并行的水平,这个

sc = SparkContext() 
sc.defaultParallelism 

默认并行是给我8.我的问题是为什么它给我8,即使我提到了2个核心?如果它没有给出我系统的实际并行性,那么如何获得实际的并行性水平?

谢谢!

sc.defaultParallelism 

返回在SparkContext上定义的默认并行度级别。默认情况下,它是可用于应用程序的核心数量。

但要知道什么是设置预施加为jupyter记事本,你可以从斯卡拉打印

sc._conf.getAll() 

sc.getConf.getAll.foreach(println)

这应该具备的使用性能

spark.default.parallelism

我认为在这种情况下,它的预设,这就是为什么你得到8你的情况。

+0

感谢您的回答。这非常有用。是的,我可以打印所有的conf。在打印中,我得到了与config.default文件中提到的相同的配置。但我的问题是,如果我提到我的执行者是2和核心3,那么为什么它显示默认8?它应该不是默认的3?或者,执行器核心和并行的默认核心之间有一些区别吗?谢谢! – Beta

+0

是的。默认情况下,它是可用于应用程序的核心数量。这是3.但在你的情况'spark.default.parallelism'被设置为8作为默认,这就是为什么你越来越8.可能是jupyter开始的会话设置 –

+0

感谢澄清。我已经提出了它。将接受它作为答案以及:) – Beta