0

http://www.manning.com/lam/にある Manning の「Hadoop in Practice」から 4.1 のサンプル コードを実行しようとしています。

Hadoop 1.0.3 Java 6 を使用して Ubuntu 10.4 を実行しています。

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/の例では、ワードカウントの例を使用してインストールを確認しました。

次に、次を使用して 4.1 の例を実行しようとしました。

hduser@ubuntu:/usr/local/hadoop$ bin/hadoop jar MyJob.jar MyJob /user/hduser/4.1/input /user/hduser/4.1output

エラーが発生します:

Exception in thread "main" java.lang.ClassNotFoundException: MyJob
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:149)

実行される例の public run メソッドと manning のコードは異なるようです。

よろしくお願いします!

4

2 に答える 2

0

Hadoop 1.0.3.16 と Java 6 で同じ問題が発生しましたが、警告が表示されたため、この変更を行うことを考えjob.setJar("/path/to/MyJob.jar");た後に追加することで、マニングの例 4.1 を動作させることができました: . ユーザー クラスが見つからない可能性があります。またはを参照してください。同じ警告 Tariq が表示されますか?job.setJobName("MyJob");WARN mapred.JobClient: No job jar file setJobConf(Class)JobConf#setJar(String)

job.setJarByClass(MyJob.class); も追加してみました。代わりに、これは機能しませんでした。

乾杯、アレックス

于 2013-04-30T14:26:14.173 に答える