2012-10-03 137 views
1

我已經在Windows 7 pro 64位的cygwin下成功安裝了hadoop。在cygwin下的windows 7下安裝mahout

現在我正在安裝mahout,我不能。

設置MAHOUT_HOME和變量,象夫運行在Cygwin後,我收到以下錯誤

我猜它與Cygwin和窗口路徑之間的兼容性問題,這樣做,但我無法找到它的具體路徑應我更改。

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) 
+0

您是否找到解決問題的方法? – fxm

回答

0

也許/cygdrive/c/mahout/mahout-examples-0.7-job.jar應該是C:\象夫\亨利馬烏-例子-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/