在cygwin下的windows 7中安装mahout

时间:2012-10-03 00:40:54

标签: windows-7 hadoop cygwin mapreduce mahout

我已经在Windows 7 pro 64位的cygwin下成功安装了hadoop。

现在我正在安装mahout而我不能。

在cygwin上设置MAHOUT_HOME和变量并运行mahout后,我收到以下错误

我想这与cygwin和windows路径之间的兼容性问题有关,但我无法找到应该更改的具体路径。

Running on hadoop, using /cygdrive/c/hadoop/bin/hadoop and HADOOP_CONF_DIR=
MAHOUT-JOB: /cygdrive/c/mahout/mahout-examples-0.7-job.jar
Exception in thread "main" java.io.IOException: Error opening job jar: /cygdrive               /c/mahout/mahout-examples-0.7-job.jar
    at org.apache.hadoop.util.RunJar.main(RunJar.java:90)
Caused by: java.io.FileNotFoundException: \cygdrive\c\mahout\mahout
examples-0.7               
-job.jar (The system cannot find the path specified)
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:214)
    at java.util.zip.ZipFile.<init>(ZipFile.java:144)
    at java.util.jar.JarFile.<init>(JarFile.java:152)
    at java.util.jar.JarFile.<init>(JarFile.java:89)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:88)

1 个答案:

答案 0 :(得分:0)

/cygdrive/c/mahout/mahout-examples-0.7-job.jar可能应该是C:\ mahout \ mahout-examples-0.7-job.jar。

     MAHOUT_JOB=`cygpath -wp $MAHOUT_JOB

Java是一个Windows程序,因此无法识别特定于Cygwin的路径。所以/ cygdrive / c / foo / ...对java.exe没用。如果您的Java软件使用文件路径,则需要使用Cygwin附带的cygpath工具将它们转换为Windows样式的路径名。

cygpath将UNIX样式的路径作为参数,并返回Windows样式的路径。这是一个例子:

    $ cygpath -wp /cygdrive/c:/cygdrive/c/classes
    c:\;c:\classes

因此,在调用Java程序时(例如,从shell脚本中调用),您需要像这样编写命令行:

java -classpath `cygpath -wp $CLASSPATH` [arguments]

参考:http://www.inonit.com/cygwin/faq/

相关问题