码迷,mamicode.com
首页 > 其他好文 > 详细

关于Hadoop报Child Error错误的解决经验

时间:2015-02-20 00:23:25      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:hadoop   child error   

   错误的主要特征代码是这样的:

    java.lang.Throwable: Child Error at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:271) Caused by: java.io.IOException: Task process exit with nonzero status of 1.

   注意返回的exitcode是1,网上还有返回其他的,比如-1,比如255等等,这里不涉及。

   第一次出现这个错误是在用pig执行其语句的时候(我们知道pig的语句都是由框架自动生成了mapreduce程序来实现的)。另外一次是使用sqoop向hive中导入数据时(也是基于mapreduce实现的)。当时就这个错误代码“1”查了很多资料。国内的国外的,大部分都说是tasktracker的日志文件夹太多,达到Linux操作的系统的ext3磁盘类型的上限了。但是无论我怎么按照其建议清空磁盘,都没有用,错误依旧。

   经过了查看出错的源码和文档。后来终于发现,我这里的这个错误的原因,其实是个很小很蠢的错误。原来是因为,我们的Hadoop执行mapreduce时,实际上调用了jdk的命令。但是其比较特别的是,他调用的不是JAVA_HOME/bin中的命令。而是JAVA_HOME/jre/bin中的命令。

   去到目标文件夹下一看,果然,不出所料。这些命令全部没有执行权限。分分钟chmod 744 ./* 。。

   再使用那些基于mapreduce的组件和框架,完美运行。

   总结:看日志要学会深入的看,只看Hadoop:50030页面的简单错误描述是比较坑爹的。另外就是看日志要搞清楚哪些是重点,有些废话,很多不同的错误都会出现相同的那么一句。如果拿到网上去查,就绕弯路了。

本文出自 “science-MyMind” 博客,请务必保留此出处http://qkkcoolmax.blog.51cto.com/8843422/1614812

关于Hadoop报Child Error错误的解决经验

标签:hadoop   child error   

原文地址:http://qkkcoolmax.blog.51cto.com/8843422/1614812

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!