我用自動裝卸機加載文件從一個目錄。我有設置文件通知事件訂閱。
我有一個回填時間間隔設置為1天並沒有運行流一個星期。隻應該有~ 100新文件去接的階段狀態完成火花UI。
然而,這項工作並不編寫和停滯了很長一段時間。然後不完整的寫。要司機日誌的時候,我看到這樣的消息。
2023 - 02 - 10 - t18:35:04.867 + 0000: [GC堆(檢查啟動GC) [PSYoungGen: 2625154 k - > 11041 k (15486464 k)] 2861020 k - > 2861020 k (46883840 k), 0.0116171秒][:用戶= 0.09 sys = 0.00,真實= 0.01秒)2023 - 02 - 10 - t18:35:04.878 + 0000:[完整GC堆(檢查啟動GC) [PSYoungGen: 11041 k - > 0 k (15486464 k)] [ParOldGen: 235874 k - > 231400 k (31397376 k)] 246915 k - > 246915 k (46883840 k), [Metaspace: 291018 k - > 291018 k (313344 k)], 0.1842356秒][:用戶= 0.79 sys = 0.00,真實= 0.18秒)
大約每20分鍾。
工作已經停滯了好幾個小時,我已經嚐試增加和減少集群。
我不想要重置檢查點和重新開始。
謝謝
@nolanlavender008:
看起來工作經曆頻繁的垃圾收集(GC),這可能導致重大延誤和影響工作的性能。在這種情況下,似乎這個問題可能與堆的大小,這是JVM的內存存儲對象的一部分。
為了解決這個問題,你可以嚐試以下步驟:
- - - conf spark.executor。extraJavaOptions = - verbose: gc - xx: + PrintGCDetails - xx: + PrintGCDateStamps - xx: + UseG1GC - conf spark.driver。extraJavaOptions = - verbose: gc - xx: + PrintGCDetails - xx: + PrintGCDateStamps - xx: + UseG1GC
這些選項將打印詳細的垃圾收集信息到控製台,可以幫助您識別問題的根源。
重要的是要注意,重新設置檢查點和重新開始可能是必要的在某些情況下,特別是在工作已經停滯了一段時間。然而,采取這一步驟之前,值得探索其他選項,看看沒有重新開始的問題可以解決。