2012-03-01 13 views
0

以下に、WordCoutのJavaバージョンを実行しようとしているときのエラーを挙げます。私はそれを正常にコンパイルすることができましたが、私は今なぜcribbingているのか理解できません。私はいくつかの依存関係の問題を考えて、ライブラリのパスのすべての組み合わせを試したが、まだ立ち往生した。どんな助けもありがとう。WordCount-Compilerの問題のJavaサンプルを実行できません

[email protected]:/opt/hadoop# java -cp lib/commons-cli-1.2.jar:hadoop-core-1.0.0.jar . /src/examples/org/apache/hadoop/examples/WordCount 
Exception in thread "main" java.lang.NoClassDefFoundError:/
Caused by: java.lang.ClassNotFoundException: . 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
Could not find the main class: .. Program will exit. 
[email protected]:/opt/hadoop#. 

答えて

1

ヒント:

Caused by: java.lang.ClassNotFoundException: .

javaあなたはJavaプログラムを実行すると、それは.

1

という名前のクラスを見つけることができないことを教えしようとしている、あなたは、実際のクラスを指定する必要がありますあなたは実行しています。あなたがこれまで持っていることはこれです:このすべてが言っている

java -cp lib/commons-cli-1.2.jar:hadoop-core-1.0.0.jar . 

は、これら二つのJARをCLASSPATHにする必要があり、そしてあなたが呼ばれるいくつかのクラスを実行しようとしていることを「.」はもちろん、そのようなクラスが存在しないことです「.」という名前の.は、実行しようとしているクラスの名前でなければなりません。.ではありません。そのクラスはその内部にmain()メソッドを持つ必要があります。

+0

を参照してください、それがあるため、ここでのスクロールバー:) – Pramit

+0

いくつかの問題の隠されてしまいました。 '.'とクラスの残りのパス('/src/examples/... ')の間にスペースがあります。スペースを削除します。しかし、ファイルシステムパスを使って実行するクラスを指定することもできません。クラスは 'CLASSPATH'になければなりません。 '/ src/examples'をCLASSPATHに追加するか、' cd'を '/ src/examples'に追加してそこから実行することができます。どちらの場合でも、クラスは 'org.apache.hadoop.examples.WordCount'として指定する必要があります。 –

0

"を削除してください。"あなたの命令で。

0

WORDCOUNT例は、MapReduceのジョブを起動するために意図されているので、次のように実行されることを意図しています:

bin/hadoop jar hadoop-*-examples.jar wordcount [-m <#maps>] [-r <#reducers>] <in-dir> <out-dir> 

これはあなたのためのクラスパスを設定します。

が実行すべきファイルが言及されているhttp://wiki.apache.org/hadoop/WordCount

関連する問題