1
考慮到Spark任務的數量不能高於內核數量,運行更多的分區比核心的數量還是合理嗎?如果是這樣,你能否詳細說明一下?它運行更多的分區比內核數量有意義嗎?
考慮到Spark任務的數量不能高於內核數量,運行更多的分區比核心的數量還是合理嗎?如果是這樣,你能否詳細說明一下?它運行更多的分區比內核數量有意義嗎?
可能還有其他您想要增加分區數量的場景(例如,如果您遇到大小/內存限制)。
退房有關並行調整這個漂亮的文章:http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/
更新: 這怎麼可以處理幫助/數據偏差,給你一個更好的集羣利用率和更快的作業執行(示例屏幕截圖以下是Spark UI中您可以看到任務之間的偏差 - 請參閱diff中值與最大任務持續時間):
假設您有一個可以並行運行2個任務的集羣。
只是爲了確保我的理解有關數據點傾斜:如果我有比其他分區更大的數據集分區,這將是更有效地打破成較小的分區所以其他執行者和任務可以並行處理它,而不是等待大分區由一個任務處理。我對你有正確的理解嗎? – Glide
是的。添加了對原始答案的更新。 – Traian
感謝您提供如此詳細的回覆。 – Glide