0
我有一個Spark應用程序,內存不足,集羣有兩個節點,大約有30G的RAM,輸入數據大小約爲幾百GB。Apache Spark內存不足,分區數量較少
該應用程序是一個Spark SQL作業,它從HDFS讀取數據並創建一個表並緩存它,然後執行一些Spark SQL查詢並將結果寫回HDFS。
最初我將數據分成64個分區,然後我得到了OOM,然後我可以通過使用1024個分區修復內存問題。但爲什麼使用更多的分區幫助我解決了OOM問題?
我同意每個分區的大小都比較小,但由於我正在緩存RDD(應該在後文中提到這一點),這些分區應該仍然在內存中,對嗎?因此,無論分區的數量如何,內存中的數據大小都應該相同 – elgoog