SparkStreaming序列化问题处理

经过个把月的摸爬滚打,项目终于在磕磕绊绊中成型了。先来个简介:用python 写了一堆的聚类算法,将线上数据进行聚类分析,找出离群点,建立模型。用这些模型用来检测用户的行为。

bug产生的过程

实时检测部分采用SparkStreaming实现,在使用过程中发现代码启动后一直会包序列化问题,
在这里插入图片描述
瞻仰下咱们这个bug,测试美眉将bug级别从normal改到high,又从high改到了cri,那个扎心啊。。。关键一直没有很好的修复。。

看看我的处理过程:
首先怀疑是序列化的问题,将所有bean都添加序列化接口了,试试?
在这里插入图片描述
不行!
问了一下我师傅,可能是由于类传输的时候非静态的类需要序列化,静态类不需要序列化,是不是可以躲过这样的bug,将所有方法都改成static ,试试?
在这里插入图片描述
还是不行!!
中间还试了n中方法。。。。
疯了!怎么办??看了一下jar包貌似有冲突的,去掉试试?
jar包冲突?
还是不行!!!
我去,难道真解不了了。。
万般无奈下瞅了一眼打包文件的xml(assembly.xml)
我去!!!没有将无用的jar在打包过程中踢掉,导致程序在提交spark的时候会将多余的jar提交,kafka的jar会造成序列化冲突!
在这里插入图片描述
将这个配置加上重新打包,问题解决!!
困扰了一个礼拜的bug终于解决了。

教训:

项目配置一定要仔细审核每一个节点,理解其中的原理,不能只是copy改,这样出了问题自己都摸不着头脑。
在排查时要有步骤,就像打拳一样,有板有眼,不能饥不择食,乱整(将所有类改为静态导致数据库入库产生垃圾数据),产生新的bug。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值