在eclipse中由javamap-reduce应用程序运行时,遇到以下异常。我的构建路径中也包含了commons-logging-1.2.jar文件,但下面仍将介绍。
我是hadoop新手。请帮帮我。
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Preconditions
at org.apache.hadoop.conf.Configuration$DeprecationDelta.<init>(Configuration.java:314)
at org.apache.hadoop.conf.Configuration$DeprecationDelta.<init>(Configuration.java:327)
at org.apache.hadoop.conf.Configuration.<clinit>(Configuration.java:409)
at AverageNosClass.main(AverageNosClass.java:71)
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Preconditions
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 4 more
9条答案
按热度按时间y4ekin9u1#
将guava-11.0.2.jar添加到构建路径解决了这个问题。这个jar位于/share/hadoop/tools/lib文件夹中。我已经安装了hadoop2.4.0。
kyks70gy2#
这是由guava-x.y.z.jar引起的,因为它丢失了确保您添加了它
oyxsuwqo3#
我通过添加guava-14.0.1库解决了这个问题。
f45qwnt84#
我的问题已经通过添加以下jar得到解决
dddzy1tm5#
确保已将正确的jar添加到构建路径中。。
jgwigjjp6#
使用谷歌收藏罐
http://www.findjar.com/class/com/google/common/base/preconditions.html
这也许能解决你的问题。
2nbm6dog7#
我们遇到了一个类似的问题,希望这能对其他人有所帮助:我们的类路径中有jar,但是仍然发生了这个问题。原因是-在build.gradle中它被加载为
compileOnly
. 把它改成implementation
成功了llmtgqce8#
我在尝试使用mrunit时也遇到过这个错误,但是没有找到maven依赖项,所以我尝试手动添加它。这是你的案子吗?
问题是,如果您手动添加jar,它将一直无法请求剩余的mrunit jar(mrunit的pom中的jar),直到您使用与pom中相同的版本添加它们。
找不到mrunit的原因是我没有在dependecy声明中使用必要的分类器
解决方案是添加分类器
hadoop1
或者hadoop2
ef1yzkbh9#
hadoop lib目录是否包含在eclipse项目中使用的所有jar文件?
如果没有,请将它们放在hadoop lib目录中并重新启动hadoop。