`
zhousheng29
  • 浏览: 149823 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hadoop Mapreduce任务出错,Child Error

 
阅读更多
集群出现大面积任务失败,表现为mapreduce刚启动不久,就抛出异常,查看log可以看到,
Status : FAILED
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.
at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:258)

找了资料很长时间,经过了怀疑时钟同步有问题,ulimit设置不正确,终于在台湾,老外网站一个不经意的地方提到可能是写入有问题,或者磁盘不足。
They say 'it's an OS limit on the number of sub-directories that can be related in another directory.'
查了磁盘空间,还有足够的空间可以写数据。
突然想到是否是日志目录告警,因为每一个都会在log目录下建一个子目录的,而log目录所在磁盘格式是ext3,而linux的ext3文件格式是有子目录上限的,为32000,除掉. ..,子目录最多只能有31998.
查看/app/hadoop/logs/userlogs下子目录,果然达到了上限31998.
一天的子任务log能达到上限,看来是错误连续出错,导致子目录来不及删除引起。写了个脚本,删除各节点机器的部分userlogs下的子目录log后,问题解决。
总结:除了每天删除外,还要监控log子目录是否会达到上限。
分享到:
评论
2 楼 zhousheng29 2013-05-02  
仔细看log文件,里面应该可以看出些端倪。
1 楼 skly_java 2013-04-26  
我也出现这样问题,但logs文件没有达到这个数,不知怎么解决

相关推荐

Global site tag (gtag.js) - Google Analytics