在cygwin下的windows7中安装mahout

2g32fytz  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(424)

我已经成功地在Windows7Pro 64位的cygwin下安装了hadoop。
现在我正在安装mahout,但我不能。
在设置mahout\u home和变量并在cygwin上运行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)
e0uiprwp

e0uiprwp1#

可能/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/

相关问题