嗨磚/火花的專家!
我有一塊pandas-based第三方代碼,我需要執行更大的火花管道的一部分。從本質上講,pandas-based司機節點上執行代碼。我跑進記憶問題,開始探索的主題監測司機節點內存利用率。
我的問題是:
1)我有一個閑置的集群和56個gb的內存,當看著新“標準”我看到奇怪的記憶/周期波動。這些周期是從哪裏來的?集群沒有運行任何代碼(CPU util ~ 0%)所以我想知道到底發生了什麼?2)我的理解是,橙色的“使用”係列顯示內存使用的python代碼。但究竟什麼是藍綠色區域低於叫做“其他”?甚至當我運行我的代碼,絕大多數內存56 gb內存驅動節點被這“其他”的東西:
我不相信OS /碼頭工人/火花/ JVM的東西需要35 - 40 gb RAM。所以它到底是什麼?和我怎麼能減少它,讓更多的“房間”,我的代碼嗎?
3)如何spark.driver.memory環境影響呢?摘要根據火花文檔,在默認情況下它是1 g。這是馬克斯的內存數量,我可以使用我的代碼運行時(“使用”係列)?1 g似乎極值低。將它合理增加8或16 g的場景嗎?
謝謝!
關於第一個問題,司機內存利用率高,我們可以看到多個周期的高使用率。這背後的主要原因是,即使一個集群是閑置,司機必須執行多個操作保持集群活動,準備處理。一些活動
這發生在間隔,這是內存利用率背後的原因發生在周期的司機。
關於你的第三個問題,你可以了解spark.driver的實際價值。記憶通過觀察火花的執行人選項卡界麵。這也會有司機和我們可以知道司機內存的實際價值。
火花的UI,我們隻可以看到存儲記憶。執行內存幾乎等於存儲記憶。
在這種情況下,驅動程序內存將是21.4 gb。這將是JVM的內存分配給相關的活動。