您好,登錄后才能下訂單哦!
本篇內容介紹了“spark是如何使用堆棧的”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
spark進程是以JVM進程運行的,可以通過-Xmx和-Xms配置堆棧大小,它是如何使用堆棧呢?下面是spark內存分配圖。
spark默認JVM堆為512MB,為了避免OOM錯誤,只使用90%。通過spark.storage.safetyFraction來設置。spark通過內存來存儲需要處理的數據,使用安全空間的60%,通過 spark.storage.memoryFraction來控制。如果我們想知道spark可以緩存多少數據?假設使用executors數為N,那么緩存數據為N*90%*60%*512MB。 ##shuffle memory shuffle memory的內存為“Heap Size” * spark.shuffle.safetyFraction * spark.shuffle.memoryFraction。默認spark.shuffle.safetyFraction 是 0.8 , spark.shuffle.memoryFraction是0.2 ,因此shuffle memory為 0.8*0.2*512MB = 0.16*512MB ##unroll memory unroll memory的內存為spark.storage.unrollFraction * spark.storage.memoryFraction * spark.storage.safetyFraction,即0.2 * 0.6 * 0.9 * 512MB = 0.108 * 512MB。unroll memory用作數據序列化和反序列化。
“spark是如何使用堆棧的”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。