国庆假期最后几天,集群任务突然大批量报错,记录一下此次问题解决过程。
1. 问题描述:
凌晨离线任务执行时,随机出现几十个Oozie任务执行失败,Rerun后一般可以正常执行。
2. 问题定位:
由于节前新增了几个计算节点,首先怀疑是新节点导致的。查看CM/YARN等,未发现报错。
查看任务执行日志,发现错误信息,截图如下:
再去查看报错任务的所有MR,都是成功的,现在基本确定报错是由Beeline自身的原因。
下载Hive源码,经查找,发现报错都是在操作FileHistory类的时候:
浏览网上的类似报错信息,发现疑似问题,当~/.beeline/history文件过大时,2.1版本以下会OOM。于是登陆集群确认,但是随机挑选的几个节点,history文件都为空,顿时感觉空欢喜一场。
回过头来继续思考,还是基本确定因为增加节点引起的,于是登录新增的几个节点,发现在所有的新增节点上,~/.beeline/history文件都不存在!考虑之前定位发现的问题,决定在这几个节点手动生成下history文件,果然,第二天解决了。
参考文档:
http://www.ericlin.me/tag/beeline/
https://community.hortonworks.com/articles/102247/beeline-hangs-only-from-few-sessions-and-exit-with.html
https://issues.apache.org/jira/browse/HIVE-15166
Beeline返回大量数据时OOM
http://tangjj.blog.51cto.com/1848040/1679895/