-1

EclipseでHadoop-1.0.1を使用しています。単語数アプリケーションを実行しようとしていますが、WordCount.javaを実行すると、Eclipseに次のエラーが表示されます

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.apache.hadoop.conf.Configuration.<clinit>(Configuration.java:143)
    at test.WordCount.main(WordCount.java:56)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    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)
    ... 2 more

にhadoop-core-1.0.1.jarがありますclasspath。アプリケーションがより多くのjarを必要とする場合

4

3 に答える 3

5

共通ロギングに関連する2つの重要なロギングクラスcommons-logging-1.1.1.jarとcommons-logging-api-1.0.4.jarのいずれかがクラスパスから利用できないか、または単に持っていません。

ほとんどの場合、これらのファイルは他のHadoopJarと一緒に\libフォルダーにあるため、クラスパスを設定するとこれらのjarにアクセスできます。これらのファイルがマシンにあり、アクセスできるようにクラスパスに設定されていることを確認してください。

また、「hadoop version」を実行すると、結果としてバージョンが表示され、同じhadoop-core--SNAPSHOT.jarが$HADOOP_HOMEの場所にある必要があります。

代わりにWordCount.javaを実行しているとおっしゃいましたが、コンパイルされたアプリケーションを常にjavaではなくjarとして使用しているため、WordCountジョブを実行していると言う必要があります。

$ bin / hadoop jar /usr/jboss/wordcount.jar org.myhadoop.WordCount / usr / jboss / wordcount / input / usr / jboss / wordcount / output

于 2012-05-17T22:42:36.540 に答える
1

hadoop-core-1.0.1おそらくクラスパスには含まれていません。commons-logging実際には、Hadoopjarに数回含まれています。

于 2012-05-17T14:42:56.967 に答える
1

common-logging jarファイルが含まれていないようですので、ここからダウンロードしてくださいjarファイルはバージョンによって異なります。その後、プログラムに含めて実行します。ありがとうございます。

于 2013-11-22T05:08:41.410 に答える