2015-09-04 70 views
2

我有一個包含5個節點的Hadoop集羣,其中Spark以yarn-client模式運行。如何控制在紗線客戶端模式下運行多少個執行程序?

我使用--num-executors作爲執行者的數量。我能夠獲得的最大執行者數量是20.即使我指定了更多,我也只能得到20個執行者。

是否有可以分配的執行者數量的上限?這是一種配置還是基於可用資源做出決定?

+0

每個節點有多少核心?如果它是4可以解釋5x4 = 20的執行者數量。 – botchniaque

回答

2

顯然你的20個正在執行的執行程序會消耗所有可用的內存。你可以嘗試使用spark.executor.memory參數來減少Executor的內存,這會讓其他執行器產生更多的地方。

另外,你確定你正確設置了執行者號碼嗎?您可以通過查看Environment選項卡中的spark.executor.instances值來驗證Spark UI視圖中的環境設置。

編輯:正如Mateusz Dymczyk在評論中指出的,有限數量的執行程序不僅可能由過度使用的RAM內存引起,還可能由CPU內核引起。在這兩種情況下,限制都來自資源管理器。

相關問題