2
  • 我有一个 PYTHONPATH 设置,它也可以正常工作,除非我运行 map-reduce 作业
  • 它失败了

    回溯(最后一次调用):文件“/work/app/hadoop/tmp/mapred/local/taskTracker/hduser/jobcache/job_201203091218_0006/attempt_201203091218_0006_m_000020_0/work/./mapper.py”,第 57 行,来自 src.utilities导入实用程序 ImportError: No module named src.utilities java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1 at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:311) at org.apache .hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:545) 在 org.apache.hadoop.streaming.PipeMapper.map(PipeMapper.java:121) 在 org.apache.hadoop.mapred.MapRunner.run(MapRunner.java :50) 在 org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436) 在 org.apache.hadoop 的 org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:36)。mapred.MapTask.run(MapTask.java:372) at org.apache.hadoop.mapred.Child$4.run(Child.java:261) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth .Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059) at org.apache.hadoop.mapred.Child.main(Child.java:255) java .lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1 at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:311) at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed. java:545) 在 org.apache.hadoop.streaming.PipeMapper.close(PipeMapper.java:132) 在 org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57) 在 org.apache.hadoop.streaming .PipeMapRunner.run(PipeMapRunner.java:36) 在 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:261) 在 java.security.AccessController.doPrivileged(Native Method) 在 javax.security.auth.Subject.doAs(Subject.java:396) 在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java :1059) 在 org.apache.hadoop.mapred.Child.main(Child.java:255)apache.hadoop.mapred.Child.main(Child.java:255)apache.hadoop.mapred.Child.main(Child.java:255)

问题: - 在 hadoop-streaming 期间,我们是否必须专门设置 Python 路径?在哪里?

4

2 回答 2

0

我们需要添加 MapReduce 服务环境安全阀,在我的情况下,我们使用的是 cloudera-manager GUI,我添加了 PYTHONPATH 它正在工作。

于 2014-01-09T12:34:25.887 回答
0

我遇到了同样的问题,我认为问题在于 Hadoop 虚拟环境无法识别您系统的 pythonpath。如果你将包安装到 /Library/Python/2.7/site-packages,Hadoop 会选择它们并且它会工作。

于 2012-06-06T20:45:34.513 回答