0
我ssh给主人,并在控制台上运行我的hadoop作业用于开发目的。我的工作在一个神秘的方式失败,有许多Java堆栈跟踪,使没有意义的我,见下图:我在EMR群集的主服务器上运行的我的python作业失败,如何排除故障?
java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 143
at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:322)
at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:535)
at org.apache.hadoop.streaming.PipeMapper.map(PipeMapper.java:120)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)
at org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:34)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:455)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:344)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
今天,我不得不使用这个在EMR任务,即可解决问题。我试图在S3中找到日志被转储的日志,并且应该放在名为“j-XXXXXXXXXXXXXXX/containers/application_151935143321369_0010/container_151239351321369_0010_01_001374/stderr.gz”的文件中,但是对于失败的任务,此文件不存在。所以我不得不重现这种情况,在失败后让集群继续运行并遵循方向。 – gae123