OOZIE-任务假死分析与解决
问题描述
提交的job,所有的workflow都出现了假死的状态,查看日志,全是oozie输出的heart beat 心跳日志。
yarn fair 调度器资源也被打满
分析问题
- 首先网上查了下资料,这里就不赘言了,全是说资源不足,那么在我看来,我这边的集群资源,container内存是给够了的,所以就不考虑了。
- 仔细观察,oozie一个action是分为两部分的,launcher和action,oozie所有的action都会提交一个mr作业,在作业中提交相应的action,那么这就会导致上面的问题,所有的launcher任务把资源全部占满了,导致后续的action无法获得资源,这样就导致launcher任务一直在等待action任务结束标志好退出完成,这样就行成了上述的假死问题。
解决
方案一
- 减少fork-join并行度,让launcher任务不至于把资源打满。
方案二
- 减少container的资源,提高yarn的container数量
方案三
- 将launcher和action提交至不同的队列
- 我这边使用的公平队列,需要设置队列最大的app的数量
- 需要降低launcher队列的权重,launcher需要的资源很少,只是监控和提交action做的功能
总结
遇到问题不要盲目的去百度,有很多可能不适用自己问题所处的场景,需要分析组件的原理,然后从现象看本质,然后就会迎刃而解。