簡體   English   中英

如何調查火花中發生的 kryo 緩沖區溢出?

[英]How to investigate a kryo buffer overflow happening in spark?

我遇到了 kryo 緩沖區溢出異常,但我真的不明白哪些數據可能需要超過當前緩沖區大小。 我已經將spark.kryoserializer.buffer.max設置為 256Mb,甚至在數據集項目上應用了一個 toString,它應該比 kryo 需要的要大得多,占用的空間小於(每個項目)。

我知道我可以增加這個參數,我現在會增加,但我不認為這是一個好習慣,在達到界限時簡單地增加資源而不調查會發生什么(就像我得到一個 OOM 並簡單地增加 ram 分配不檢查什么需要更多的內存)

=> 那么,有沒有辦法調查在 spark dag 執行過程中放入緩沖區的內容?

我在火花 ui 中找不到任何東西。

請注意, Kryo 序列化程序如何在 Spark 中分配緩沖區不是同一個問題。 它問它是如何工作的(實際上沒有人回答它),我問如何調查。 在上述問題中,所有答案都討論了要使用的參數,我知道要使用哪個參數,並且我確實通過增加參數來避免異常。 但是,我已經消耗了太多的 ram,需要對其進行優化,包括 kryo 緩沖區。

所有通過網絡發送或寫入磁盤或保存在內存中的數據都應與 spark dag 一起序列化。 因此,Kryo 序列化緩沖區必須大於您嘗試序列化的任何對象,並且必須小於 2048m。

https://spark.apache.org/docs/latest/tuning.html#data-serialization

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM