2016-11-28 78 views
0

我正在使用spark2.0.1並在本地模式下進行測試。爲什麼沒有IllegalArgumentException,即使spark.executor.memory配置大於節點的RAM大小

我有類似下面的驅動器應用:

object AnnoSp { 
    def main(args: Array[String]) { 
     val spark = SparkSession.builder 
    .config("spark.executor.memory", "2000g") 
    .config("spark.driver.memory", "4000g") 
    .master("local[*]") 
    .config("spark.app.name", "Anno BDG") 
    .appName("Anno BDG") 
    .getOrCreate() 
    } 
} 

的測試節點的RAM只有4G,而我已經設置了spark.executor.memory爲4000克。我希望當這個應用程序被提交給spark時,IllegalArgumentException異常,但應用程序運行成功。爲什麼?

回答

1

spark.executor.memoryspark.driver.memory表示Java應用程序的-Xmx值,因爲羣集中的每個節點都可能具有不同的內存量,所以應用程序必須ssh到每個節點並檢查RAM /交換。 (另外,在紗線你不知道哪些節點上的遺囑執行人/驅動程序將被啓動)

至於爲什麼它可以設置得高於你的節點 - > Why am I able to set -Xmx to a value greater than physical and virtual memory on the machine on both Windows and Solaris?

相關問題