关于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文件到底发生了什么,如有大佬知道,请做出点评与回复
----互帮互助才有提升!
最新文章
- [转]struts2处理.do后缀的请求
- [闲谈] 有经验的程序员用Google用得多么?
- IOS之表视图添加索引
- 使用静态变量的方法求n!
- PHP中的预定义超全局数组
- sscanf,sscanf_s及其相关使用方法
- selenium框架与chrome浏览器的不兼容问题
- 201521123052《Java程序设计》第3周学习总结
- iOS之 Auto Layout
- ionic3中NavController类push setRoot相关问题解决
- PHP开发程序员的学习路线
- bootstrap学习地址2017.6.1
- 关于WPF中Popup中的一些用法的总结
- Struts2_参数获得方式
- Confluence 6 配置附件大小
- mfc 嵌套类
- 【Spark】SparkStreaming-流处理-规则动态更新-解决方案
- 接口自动化平台github开源项目Django
- JavaEE笔记(一)
- Ubuntu proxychains &;&; setProxy及 unsetProxy