資源數量取決於正在使用的集羣管理器,因爲不同的集羣管理器將提供不同的分配。
例如在獨立模式下,Spark將嘗試使用所有節點。 spark.max.cores
將控制整個作業將在整個節點中佔用多少內核。如果未設置,Spark將使用spark.deploy.defaultCores
。從spark.deploy.defaultCores
的文件進一步明確其用途:核心
默認號碼給應用程序星火的獨立 模式,如果他們不設置spark.cores.max。如果未設置,應用程序 將始終獲取所有可用內核,除非它們自己配置spark.cores.max 。在共享羣集上設置此較低值以防止 的用戶默認抓取整個羣集。
在Mesos粗粒度模式下,Spark將默認分配所有可用內核。使用spark.max.cores
來限制每個作業。
在Mesos細粒度模式下,Spark將根據作業需要爲每個任務分配一個核心,然後釋放它們。這確保了以較高的任務分配開銷爲代價的合理使用。
紗,每documentation:
的--num執行人選項星火YARN客戶端控件多少 執行人將分配集羣上,而--executor內存和 - 執行者核心控制每個執行者的資源。
關於內存,沒有辦法使用spark.executor.memory
來設置每個作業或任務的總內存,每個執行器只能設置一個。分配給您的作業的內存將爲spark.executor.memory x #executors
。
寫得很漂亮。只是一個後續問題,是否有辦法爲每個應用程序的每個執行程序啓動多個任務?這個問題來自於我的場景,其中我的羣集上只運行一個應用程序,每個執行程序的理想任務數爲2到3,我推測 – Suresh