注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

qus的博客

 
 
 

日志

 
 

记录一次hive的运行job的问题  

2013-07-04 20:01:23|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
现象,python查询sql语句 返回
hive_service.ttypes.HiveServerException: HiveServerException(errorCode=2, message='Query returned non-zero code: 2,
 cause: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask', SQLState='08S01')
影响业务。

HiveServerException是hiveserver的远程客户端抛出的异常。
所有job阶段的异常都通过这个exception封装抛出给python,所以python拿不到对应的job报错信息。
但是幸好还是提示了org.apache.hadoop.hive.ql.exec.MapRedTask这个类中抛出。
查看源码,看到是在hive通过exec调用命令行启动新的JVM运行job时候抛出的异常。
基本定位为是hive提交的job运行失败了。

几经辛苦,在线上看到RM的界面。查看失败的job没有,有被kill的job。
当时没反应过来被KILL的job是被RMkill的总感觉是认为kill的。

由于年代久远,不知道这个sql对应的job是哪个。只能猜。经过询问错误发生时间,终于找到一个疑似APP。
继续苦苦该APP对应的日志。先是在remote-app-log的目录中找到对应的NM上的日志。然后定位到该APP的AM在某个机器,终于找到了当时job运行的AM日志。

但是日志很长..又几W行。直接搜索ERROR,上下文都是被kill的说明。这个没有原因就没有帮助。
job日志不能解决问题。就尝试去找hive的临时提交job的日志。对应在/tmp/用户名/hiveXXX下。

从运行时间上对比,疑似日志文件只有一个。(幸好当其时的job提交不频繁,不然找死人了)。
查看日志,发现有job百分比运行记录,一路跟踪。终于发现reduce运行到94%的时候回滚到87%了。连续几次重试都失败。OK。基本确定是reduce阶段出错了。

reduce阶段出错了,但是对应的日志不在这里。应该是这里只记录了输出流,没有记录错误流。
好吧,记住了reduce回滚的时间。回去AM的日志寻找错误。

终于找到关键记录:
3243 2013-07-01 02:22:08,228 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl: Diagnostics report from attempt_13714691     75633_4006_r_000004_0: Container [pid=30831,containerID=container_1371469175633_4006_01_000042] is running beyond physical memory limits. Current usage: 1.0gb of      1.0gb physical memory used; 1.5gb of 4.1gb virtual memory used. Killing container.
3244 Dump of the process-tree for container_1371469175633_4006_01_000042 :


好吧。是物理内存超出了。
YARN中的job运行时,通过对linux中的/proc目录的监控来决定是否杀死一个child的。
看看配置文件,发现reduce阶段申请内存没有配置,那就是1024。child启动的jvm参数中配置的最大堆是1024(-Xmx1024)。
JVM运行期间除了堆上分配还有很多堆外使用,在配置最大堆的参数的时候要预留至少100M的空余供堆外使用。

OK。修改最大堆到800M。由于是客户端参数,不需要重启。直接分发配置文件。

剩下的,就等待业务的反馈了。

  评论这张
 
阅读(9625)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017