hadoop流与anaconda(python)无法正常工作

时间:2015-05-11 10:54:40

标签: python-2.7 anaconda hadoop-streaming

我正在运行带有hadoop流的python脚本。 我安装了python 2.7和anaconda。

当我使用python脚本运行hadoop流时 #!/ usr / bin / env python 它工作正常。

但是当我使用anaconda时

#!/opt/anaconda/python2.7/bin/env python

它不起作用。  MR作业失败,但有以下异常。

Caused by: java.io.IOException: Cannot run program "/hdfs1/yarn/nm/usercache/appcache/application_1430001030776_13989/container_e48_14776_1301_000/./mymapper.py": error=2, No such file or directory
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
        at org.apache.hadoop.streaming.PipeMapRed.configure(PipeMapRed.java:209)
        ... 23 more
Caused by: java.io.IOException: error=2, No such file or directory
        at java.lang.UNIXProcess.forkAndExec(Native Method)
        at java.lang.UNIXProcess.<init>(UNIXProcess.java:186)
        at java.lang.ProcessImpl.start(ProcessImpl.java:130)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)

这是否意味着我不能使用带有anaconda的hadoop流媒体?

1 个答案:

答案 0 :(得分:0)

这可能是因为您没有在每个dataNode上安装#!/opt/anaconda/python2.7/bin/env python

当您使用hadoop-streaming时,只会将文件mymapper.py发送给地图处理程序,而不是python解释程序。

您可以通过在anaconda群集中的每台计算机上安装/opt/anaconda/python2.7/bin/env来解决此问题。 正如您所看到的,使用默认的python解释器可以正常工作,因为它可以在群集中的每台计算机上使用。