如果我將RDD
劃分爲60,並且在20臺機器上共有20個內核,即20個單核機器,則任務數爲60(等於分區數)。爲什麼這對於每個核心具有一個分區並且有20個任務是有利的?分區如何映射到Spark中的任務?
此外,我運行了一個實驗,將分區數設置爲2,檢查UI顯示任何時候都運行2個任務;然而,令我感到驚訝的是它在完成任務時切換實例,例如, node1和node2執行前兩個任務,然後node6和node8執行下一個2個任務等。我認爲通過將分區數量設置爲小於羣集中的核心(和實例),那麼程序將使用最小值所需實例的數量。誰能解釋這種行爲?
謝謝。但是,我不把數據放入HDFS,而是從S3導入。我的印象是這不會將數據放入HDFS,但我可能是錯的? – monster
呃,那要看。 Spark在HDFS之上被廣泛用作Hadoop替代品,但與更多的東西兼容。所以問題又回到你身上了,你有什麼數據?但說實話,我沒有用過S3。如果同樣的考慮適用,我也不會感到驚訝。沒有多少方法可以創建分佈式冗餘;-) –