MapReduce常见问题与解决-PipeMapRed.waitOutputThreads

1 问题描述

在Map阶段错误日志为:

Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1 at 
org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:322) at 
org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:537) at 
org.apache.hadoop.streaming.PipeMapper.close(PipeMapper.java:132) at 
org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:75) at 
org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:34) at 
org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:459) at 
org.apache.hadoop.mapred.MapTask.run(MapTask.java:345) at 
org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:170) at 
java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) at 
org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:164)

2 问题原因及解决

解决此类原因主是 Streaming 程序退出异常,序要依靠错误日志来查看详细原因,下面给出部分错误码

2.1 subprocess failed with code 1

原因定位:

map或reduce返回1MapReduce框架会将应用程序的返回值收集,subprocess failed with code 1表示程序返回的就是1。详细出错原因需结合Task Logs和程序源码定位。

2.2 subprocess failed with code 126

原因定位:

一般是由于map/reduce中调用的程序无可执行权限导致

2.3 subprocess failed with code 127

原因定位:

一般是由于map/reduce脚本未上传导致,请使用-file 上传map/reduce程序

2.4 subprocess failed with code 137

原因定位:

map或reduce程序超出平台内存限制被limit杀掉,一般的平台都会有一个默认内存限制,例如配置内存限制为800MB(137-128=9, 对应信号为SIGKILL)发生这种情况后一般登录到这台计算节点上看dmesg都能看到类似: killer: killing process….提示 ps:在新的haoop版本中,如果单个程序运行占用cpu的时间超过12小时,也会被kill返回137.

2.5 subprocess failed with code 139

原因定位:

代码有问题,进行本地数据测试

2.6 subprocess failed with code 141

原因定位:

map或reduce异常退出,平台继续向管道推送数据,因管道异常出错(141-128=13, 信号13代表着SIGPIPE错误,即管道错误)根本原因还是程序异常退出导致。详细出错原因需结合Task Logs和程序源码定位。

2.7 subprocess failed with code 255

原因定位:

map或reduce异常退出返回值-1,详细出错原因需结合Task Logs和程序源码定位

2.8 其他返回值

公式:

错误码-128 = linux返回码

//比如 返回错误码是 137, 那么它对应的linux返回码就是 9

然后查看linux kill -l信号含义,对应检查程序

参考文档

Hadoop Streaming Doc


   转载规则


《MapReduce常见问题与解决-PipeMapRed.waitOutputThreads》 王聪颖 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
微观经济·现代方法笔记——市场(未完结) 微观经济·现代方法笔记——市场(未完结)
本文为学习《微观经济学——现代观点》时做的知识点笔记,主要参考原文书籍,随时更新。 1 建立模型 建立模型: $ConstructingaModel$ 作者使用大学城的住房市场来贯穿本章知识点,在这个城市中,有两种类型的住房: 邻近大学
2019-11-19
下一篇 
SCL 管理 CentOS 软件 SCL 管理 CentOS 软件
1 SCL 介绍在管理一些机器的时候,各种软件环境的安全切换是比较麻烦的问题,有时候环境的来回切换会导致系统紊乱,为了解决这个问题,红帽提供了软件环境管理工具SCL(Software Collections) 项目主页:Software
2019-11-08
  目录