hadoop——subprocess failed with code

这两天在执行hadoop streaming (用的脚本是python),一直出现subprocess failed with code 这个错误,看了streaming 源码,上面写的是系统抛出的异常,但是怎么也搞不明白为什么系统会抛出异常呢?百思不得其解啊!看了http://taoo.iteye.com/blog/1486650这个博客给我了一点提醒,原来是python问题,集群中环境不一致导致的。
把这个问题记下来吧,以备以后查阅。
hadoop streaming pyhton 时候出现:subprocess failed with code 127,code 后面错误码不管是什么,都是 脚本环境的问题
        在python脚本里面声明的:#!/usr/bin/env python,这里声明了位置,所以必须要放到 /usr/bin 下面,才能有效。
         python 执行程序必须放到 /usr/bin 下面,在环境变量的其他位置不管用
/usr/bin/env: python: No such file or directory
java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 127
        at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:362)
        at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:576)
        at org.apache.hadoop.streaming.PipeMapper.close(PipeMapper.java:135)
        at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57)
        at org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:36)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
        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:1121)
        at org.apache.hadoop.mapred.Child.main(Child.java:249)
这个主要是环境存在的问题,code后面的错误不管是几。都是streaming中执行某个脚本导致的。

你可能感兴趣的:(hadoop——subprocess failed with code)