spark使用checkpoint恢復的兩個小坑

2021-09-29 05:41:06 字數 350 閱讀 5872

1.spark在使用checkpoint恢復的時候不能再執行流的定義的流程,新加入的流的狀態在恢復完成後的spark狀態下處於未初始化狀態,在spark根據checkpoint恢復的時候將不會再對各個流進行初始化,而是直接儲存的狀態中恢復。

這將導致新加入的流還未初始化就被呼叫,丟擲stream還未初始化的異常。

2.spark在使用checkpoint恢復的過程中,不能恢復kryo序列化的類(比如採用kryo序列化的廣播變數)。

在進行checkpoint的過程,直接使用jdk的objectoutputstream進行序列化,如果只是實現了kryo序列化介面的類是不能被成功序列化的,自然是無法被寫進checkpoint檔案中被恢復的。

spark的cache和checkpoint的區別

要知道區別,就要首先知道實現的原理和使用的場景 cache就是講共用的或者重複使用的rdd按照持久化的級別進行快取。checkpoint 就是將業務非常長的邏輯計算的中間結果快取到hdfs上,他的實現原理是 首先找打stage最後的finalrdd,然後按照rdd的依賴關係回溯,找到使用checkp...

spark中cache和checkpoint使用

1 cache cache是為了追求計算的速度 spark中計算任務在記憶體中,但是結果是儲存在磁碟中的,所以首次執行會慢,之後會拿磁碟中的計算結果,所以後面會快很多 通過對結果的rdd分布式資料集進行cache,將計算結果快取在記憶體中,這樣會比快取在磁碟中更快的讀取。比如計算log檔案的行數 s...

Spark簡單使用

spark的乙個主要特點就是可以在記憶體中使用,因此他的計算速度比較快。在初學之前按照 quick start.html 中的示例來做一遍。先來初步理解一下操作流程。1.首先是搭建spark,網上有很多教程,cmd中最後執行pyspark 我們首先來分析spark資料夾中的 readme.md 檔案...