背景
spark streaming 任务执行过程中,driver总是不明原因挂掉,没有任何错误日志。
原因
出现此种情况基本上都是以下几种原因引起
1:内存泄漏,需要dump driver 堆栈信息,采用jvisualvm进行分析。
2:gc问题,例如:FULL GC的每半小时执行一次,而不是老年代已经满的时候进行gc
方案
1:针对原因1的解决方案
(1):找到driver的进程PID,driver所在的节点 包含*****spark_conf.properties的进程。
(2):dump堆栈信息
jmap -J-d64 -dump:live,format=b,file=am.dump PID,此处注意执行用户要和启动该PID的用户一致。
(3):采用jvisualvm【**\Java\jdk1.8.0\bin/jvisualvm.exe】进行分析,一般对比两个堆栈信息。
2:针对原因12的解决方案
(1):driver 配置gc:-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps
(2):观察FULLGC的执行频率。
(3):driver 配置-XX:+DisableExplicitGC 参数不显示调用GC,采用默认FULL GC。
参考文档
https://www.jianshu.com/p/8059766be86a](https://www.jianshu.com/p/8059766be86a)
关于大数据方面技术问题可以咨询,替你解决你的苦恼。参考WX:hainanzhongjian