0
我正在運行一個Spark應用程序,每個執行程序有5個執行程序的5個執行程序。 但是,我注意到只有一個執行者完成大部分工作(即大部分任務都在那裏完成)。我正在運行的作業高度平行(20個分區或更大)。你如何解釋這種行爲?Spark:執行程序的最佳使用
即使我減少了每個執行程序的核心數量,結果也只是同時在該單個執行程序上運行更少的任務。 我應該限制每個執行程序的內存,以便使用更多的執行程序(以防萬一整個數據適合單個執行程序)?
它取決於您正在處理的轉換和數據集。例如,如果您的數據是(1,2),(2,2),(1,3),(1,9)(1,10),並且您執行了reduceByKey,則您的所有數據使用鍵'1'遺囑執行人。 – Knight71
簡單的轉換和動作像df.map(lambda x:x).count()似乎在同一個執行器上運行。所以,沒有真正涉及的關鍵。 –
一點點的代碼片段和示例數據可能會有所幫助。 – Knight71