在eclipse中运行时减少eclipse中的应用程序,并面临以下异常。我已经在我的构建路径中包含了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
答案 0 :(得分:8)
将guava-11.0.2.jar添加到构建路径解决了这个问题。这个jar在/ share / hadoop / tools / lib文件夹中。我安装了hadoop 2.4.0。
答案 1 :(得分:6)
确保已将正确的Jar添加到构建路径中。
答案 2 :(得分:3)
这是由Guava-x.y.z.jar引起的,因为它缺少确保你添加它
答案 3 :(得分:2)
使用
中的google collection JAR这可能会解决您的问题。
答案 4 :(得分:2)
通过添加以下jar解决了我的问题
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>13.0-rc1</version>
</dependency>
答案 5 :(得分:0)
您的Hadoop lib目录是否包含您在eclipse项目中使用的所有jar文件?
如果没有将它们放在Hadoop lib目录中并重新启动hadoop。
答案 6 :(得分:0)
我在尝试使用MRUnit时也遇到了这个错误,并且找不到maven依赖项,所以我尝试手动添加它。这是你的情况吗?
问题是,如果您手动添加jar,它将继续无法询问剩余的MRUnit jar(MRUnit的pom中的那些),直到您使用相同的版本添加它们就像它的pom。
未找到mrunit的原因是因为我没有在dependecy声明中使用必要的分类器
解决方案为adding the classifier hadoop1
或hadoop2
答案 7 :(得分:0)
我已经通过添加guava-14.0.1库解决了这个问题。
答案 8 :(得分:0)
我们遇到了类似的问题,希望这对某人有帮助:我们在类路径中有jar,但是仍然发生了此问题。原因是-在build.gradle中,它被加载为compileOnly
。将其更改为implementation
使其有效