1

Windows 7 pro 64 ビットの cygwin に Hadoop を正常にインストールしました。

今、私は mahout のインストールに取り組んでいますが、できません。

MAHOUT_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)
4

1 に答える 1

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 プログラムを (たとえば、シェル スクリプト内から) 呼び出すときは、次のようにコマンド ラインを記述する必要があります。

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

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

于 2012-10-25T17:52:55.693 に答える