1. 程式人生 > >Spark本地除錯和程式重啟checkpoint恢復碰到的問題

Spark本地除錯和程式重啟checkpoint恢復碰到的問題

Spark本地除錯和程式重啟checkpoint恢復碰到的問題

1、產生問題的背景
  今天自測Spark程式碰到兩個問題,(1)、啟動流式程式報錯 (2)、重啟Spark程式,同一個物件的部分資料恢復了,一部分沒有恢復
  第一個問題的報錯資訊:在這裡插入圖片描述
  第二個問題的結果資訊:
在這裡插入圖片描述
2、排查問題的原因
  第一個問題的原因是:沒有配置hadoop的環境變數,導致在寫checkpoint資料的時候報錯了。
  第二個問題的原因是:寫入checkpoint中的自定義物件還包含另外一個物件,只對外面這個自定義物件進行了kryo序列化,導致在重啟Spark程式時,讀取checkpoint資料,只有進行序列化後的資料才能被反序列化,就看到了有一部分資料是序列化了的,一部分是沒有序列化。
3、解決問題的辦法
  解決第一個問題的辦法:將hadoop-common-2.2.0-bin-master的bin目錄下winutils.exe放到hadoop的bin目錄下,重啟電腦,就配置好了hadoop環境變數。再執行Spark流式分析程式時就不會報這個空指標異常了。
  解決第二個問題的辦法:將自定義物件中包含的另外一個物件也加入kryo序列化中。