2016-04-14 87 views
0

我有一個3個節點的小羣集,總共12個內核和44 GB內存。我正在從hdfs(5 MB)讀取一個小文本文件並在其上運行kmeans算法。我將執行程序的數量設置爲3,並將我的文本文件分區爲三個分區。應用程序UI顯示只有一個執行程序正在運行所有任務。 以下是應用程序界面的屏幕截圖:GUI enter image description here 這裏是Jobs UI: enter image description here 有人能幫我弄清楚爲什麼我的任務都在一個執行程序中運行,而其他人卻處於空閒狀態?謝謝。火花獨立羣集,在一個執行器上運行的作業

+0

爲什麼你使用如此龐大的軟件堆棧來處理大數據和小羣集? –

+0

我只是想測試一下,看看我的Spark代碼是否在一小部分數據上正確運行,然後在更大的數據上運行它。 –

+0

我實際上正在運行kmeans的變體進行研究。我只想測試一下,看看我的Spark代碼是否在一小部分數據上正確運行,然後在更大的數據上運行它。我無法理解爲什麼我的應用程序創造了這麼多的工作。但現在我想到了更多關於它的內容,我認爲我的算法從不會收斂,因此會導致創建這麼多小型工作。由於工作太小,只能在一名執行人員身上執行任務。感謝您的幫助。 –

回答

1

嘗試將文件重新分區爲12個分區。如果您有3個分區,並且每個節點有4個內核,則足夠不運行1個節點上的所有任務。 Spark粗略地將工作分爲1個核心上的1個分區。