独立模式下的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你的情况。
感谢您的回答。这非常有用。是的,我可以打印所有的conf。在打印中,我得到了与config.default文件中提到的相同的配置。但我的问题是,如果我提到我的执行者是2和核心3,那么为什么它显示默认8?它应该不是默认的3?或者,执行器核心和并行的默认核心之间有一些区别吗?谢谢! – Beta
是的。默认情况下,它是可用于应用程序的核心数量。这是3.但在你的情况'spark.default.parallelism'被设置为8作为默认,这就是为什么你越来越8.可能是jupyter开始的会话设置 –
感谢澄清。我已经提出了它。将接受它作为答案以及:) – Beta