我已经成功地在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)
1条答案
按热度按时间e0uiprwp1#
可能/cygdrive/c/mahout/mahout-examples-0.7-job.jar应该是c:\mahout\mahout-examples-0.7-job.jar。
java是一个windows程序,因此不能识别特定路径中的cygwin。所以/cygdrive/c/foo/。。。对java.exe无效。如果java软件使用文件路径,则需要使用cygwin附带的cygpath工具将它们转换为windows样式的路径名。
cygpath将unix样式的路径作为参数,并返回windows样式的路径。举个例子:
因此,在调用java程序时(例如,从shell脚本中),您需要这样编写命令行:
参考文献:http://www.inonit.com/cygwin/faq/