2017-07-22 151 views
2

我試圖在我的系統中以獨立模式運行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個核心?如果它沒有給出我係統的實際並行性,那麼如何獲得實際的並行性水平?

謝謝!

回答

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

相關問題