下面提到的是我在尝试执行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#.
答案 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>
这将为您设置类路径。