1.spark在使用checkpoint恢復的時候不能再執行流的定義的流程,新加入的流的狀態在恢復完成後的spark狀態下處於未初始化狀態,在spark根據checkpoint恢復的時候將不會再對各個流進行初始化,而是直接保存的狀態中恢復。
這將導致新加入的流還未初始化就被調用,拋出stream還未初始化的異常。
2.spark在使用checkpoint恢復的過程中,不能恢復kryo序列化的類(比如採用kryo序列化的廣播變量)。
在進行checkpoint的過程,直接使用jdk的ObjectOutputStream進行序列化,如果只是實現了kryo序列化接口的類是不能被成功序列化的,自然是無法被寫進checkpoint文件中被恢復的。