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序列化中。

猜你喜欢

转载自blog.csdn.net/qq_38019655/article/details/82902453