2017-04-26 33 views
1

我正在用jupyterhub在kubernetes上啓動一個帶有spark獨立的概念驗證。Spark Jupyter動態分配

我想要動態分配,因爲我的用戶會頻繁地離開鍵盤,其應用程序(筆記本)處於「運行」狀態(但沒有任務/作業),但是驅動程序正在等待工作。

動態分配似乎並沒有在踢從文檔它正在等待:

spark.dynamicAllocation.executorIdleTimeout=60s 

,但什麼是閒置的定義是什麼?對我來說,似乎這些筆記本電腦處於閒置狀態

回答

1

有針對幾個原因,

如果您的用戶設置執行者的號碼,這個號碼執行人將永遠不會被刪除。你需要爲最小執行者設置:spark.dynamicAllocation.minExecutors

在我的情況下,我們設置爲2,即使集羣已滿,數據科學家仍可以使用最少的執行程序工作。

因此,首先檢查'--num-executors'選項是否被移除並更改爲spark.dynamicAllocation.minExecutors

工作人員的其他原因沒有被刪除是關於緩存數據,如果你的數據科學家有一個緩存數據,對於這個問題檢查選項spark.dynamicAllocation.cachedExecutorIdleTimeout這對於我的用例我們沒有改變。根據documentation這個原因,說:包含緩存數據

默認執行人沒有拆除

更改爲spark.dynamicAllocation.cachedExecutorIdleTimeout

選項有關動態分配的更多詳細信息,請參閱Spark Summit Europe 2016

此演示文稿