记一次mr中限流报的异常问题

在将特征处理的项目从mr改造成spark过程中又加入了新的编码方式,本来原始mrjob代码什么都没动,结果线上跑起来就报Exception,这是在项目中使用ratelimit进行处理限速,然后配置了失败率就凉凉了

INFO 2018-05-23 20:11:17 syncmapreduce 50 Line - 18/05/23 20:11:17 INFO mapreduce.Job: Task Id : attempt_1527064715787_109787_r_000004_0, Status : FAILED
INFO 2018-05-23 20:11:17 syncmapreduce 50 Line - Error: com.google.common.base.Stopwatch.createStarted()Lcom/google/common/base/Stopwatch;
INFO 2018-05-23 20:11:17 syncmapreduce 50 Line - Container killed by the ApplicationMaster.
INFO 2018-05-23 20:11:17 syncmapreduce 50 Line - Container killed on request. Exit code is 143
INFO 2018-05-23 20:11:17 syncmapreduce 50 Line - Container exited with a non-zero exit code 143
INFO 2018-05-23 20:11:17 syncmapreduce 50 Line -
INFO 2018-05-23 20:11:17 syncmapreduce 50 Line - 18/05/23 20:11:17 INFO mapreduce.Job: Task Id : attempt_1527064715787_109787_r_000001_0, Status : FAILED
INFO 2018-05-23 20:11:17 syncmapreduce 50 Line - Error: com.google.common.base.Stopwatch.createStarted()Lcom/google/common/base/Stopwatch;
INFO 2018-05-23 20:11:17 syncmapreduce 50 Line - Container killed by the ApplicationMaster.
INFO 2018-05-23 20:11:17 syncmapreduce 50 Line - Container killed on request. Exit code is 143
INFO 2018-05-23 20:11:17 syncmapreduce 50 Line - Container exited with a non-zero exit code 143
INFO 2018-05-23 20:11:17 syncmapreduce 50 Line -
INFO 2018-05-23 20:11:17 syncmapreduce 50 Line - 18/05/23 20:11:17 INFO mapreduce.Job: Task Id : attempt_1527064715787_109787_r_000002_0, Status : FAILED
INFO 2018-05-23 20:11:17 syncmapreduce 50 Line - Error:

遇到这种问题首先想的就是jar包冲突,因为老的mrjob打包使用的是assembly方式(maven-assembly-plugin),这种打包方式会覆盖重复jar包。然后一路排查发现是guava版本冲突,那就排除冲突jar包,最后清干净了部署一跑问题依旧……

回去再去细究一下重新全部替换旧的pom,原来的项目一直正常运行,心想这下可没问题了吧,发布上线一看日志又跪了,而且报同样的问题,这就见鬼了。

经过仔细排查以及各种依赖包中guava排查,终于发现了问题




原来的项目中mr处理需要读写hive所以引入了hive-hcatalog-core,但是这个东西又引用了hive-exec这个jar包,hive-exec自己引入了guava-14.0.1,更奇葩的是它自己里面又拷贝了一份guava的代码而且还不全,能不能不这么坑……单纯排除hive-exec后依赖高版本的还提示兼容性问题

后来觉得还是给guava降级到hive-exec对应的版本,不大动原代码,然后将同事在编解码中加入的guava-20加个<scope>provided</scope>

整个感觉醉醉的……

现在版本兼容性搞得有时候踩个坑都稀里糊涂的……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值