无法运行WordCount-Compiler问题的java示例

时间:2012-03-01 03:41:44

标签: java hadoop

下面提到的是我在尝试执行WordCout的java版本时遇到的错误。我能够成功地编译相同但我无法弄清楚为什么它现在正在cri。我尝试了库路径的所有组合,思考一些依赖性问题,但仍然卡住了。任何帮助将不胜感激。

root@ubuntu:/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.
root@ubuntu:/opt/hadoop#.

4 个答案:

答案 0 :(得分:1)

提示:

Caused by: java.lang.ClassNotFoundException: .

java试图告诉您它无法找到名为.的类

答案 1 :(得分:1)

运行Java程序时,需要指定正在执行的实际类。到目前为止你所拥有的是:

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

所有这一切都说这两个JAR应该在CLASSPATH中,并且你试图运行一个名为“.”的类。当然没有这样的类名为“..应该是您要尝试运行的类的名称,而不是.。该类应该有一个main()方法。

答案 2 :(得分:0)

尝试删除“。”在你的命令中。

答案 3 :(得分:0)

因为WordCount示例旨在启动MapReduce作业,所以它应该使用以下命令运行:

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

这将为您设置类路径。

请参阅http://wiki.apache.org/hadoop/WordCount