关于sparkStreaming(spark on yarn)的一个坑!

前些天我维护的一个streaming实时报表挂了,情况:数据无法实时更新增长,然后查看了报表所依赖的五张sqlserver的表,发现,只有1张的数据是正常写入的,还一张数据非正常写入,还有3张完全没有数据写入.刚开始认为是不是数据库链接出问题了,但是!!!!我们的一个spark on yarn的批处理恢复实时数据的任务可以正常运作!而且5张表都可以正常写入,修改,删除,于是我查看了streaming任务的节点的nodemanager的日志

正常啊!内存和磁盘空间使用都正常!看来不是OOM问题

但是我还是有点不确信,因为一个长期运行的程序好端端怎么就出问题了???也没修改过代码啊,于是我还是不信邪的去修改了excutor的内存(增大),也去尝试修改了driver的内存(增大)

这下好了!!!连streming任务都运行不了了!!!spark on yarn的批处理恢复也恢复不了了!!!!我的天!!开启后几秒就挂掉!!!(想跳楼!)

于是通过 yarn logs -applocationId 查看了streming任务的报错信息如下

找不到checkpoint目录??

于是我手动创建了这个checkpoint的hdfs目录(若干次)

于是乎!!!可以正常运行不会挂掉了!!!但是!!过了20-30分钟还是会挂掉!!并且出现同样的错误!!,每次都要重新恢复目录才能正常运行!!!!

而且查看了此时的/usr/data/logs/userlogs/下的steaming的任务日志,发现了2个问题!!!!

先是大量的获取0个非空块(其实正常情况也会出现,但不是大量的) 然后跳出下一个错误如下

我的天!!!这啥错误!

百度了下,这个错误信息文字好像是自定义的,也没百度到相关错误.一般感觉得话像是代码错误,但是这代码都快半年没更改了!!怎么可能!!!

最后!!!关键来了!修复了!怎么修复的呢如下

我将streaming路径下所有带checkpoint字眼的文件全删除了!然后重启streaming任务!恢复!!!!!!!!!!!!!!!!!!!!

然后我查看了网上相关文档资料

应该就是这个问题了,完全符合我们现有的工作环境!  相关资料链接 : https://blog.csdn.net/rlnLo2pNEfx9c/article/details/81417061

不过我还是不明白那些个错误代表了什么,和删除checkpoint文件到底发生了什么,如有大佬知道,请做出点评与回复

 

----互帮互助才有提升!

posted @ 2018-12-28 11:28  王加鸿  阅读(1506)  评论(0编辑  收藏  举报