Ответ 1
Убедитесь, что вы добавили правильный Jar в свой путь сборки.
При запуске с помощью java-карты уменьшите приложение в 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
Убедитесь, что вы добавили правильный Jar в свой путь сборки.
Добавление guava-11.0.2.jar к пути сборки решило проблему. Эта банка находится в папке /share/hadoop/tools/lib. Я установил hasoop 2.4.0.
это вызвано Guava-x.y.z.jar, потому что оно отсутствует, убедитесь, что вы добавили его
Использовать JAR из коллекции google из
это может решить вашу проблему.
В вашем каталоге Hadoop lib содержатся все файлы jar, которые вы использовали в проекте eclipse?
Если не поместить их в каталог Hadoop lib и перезапустить hasoop.
У меня тоже была эта ошибка при попытке использовать MRUnit, и зависимость maven не была найдена, поэтому я попытался добавить ее вручную. Это ваш случай?
Проблема заключается в том, что если вы добавите банку вручную, она будет продолжать просить остальную часть баннеров MRUnit (те, что находятся в папке MRUnit), пока вы не добавите их все с той же версией как в его pom.
причина mrunit не найдена в том, что я не использовал необходимый классификатор в объявлении dependecy
решение добавление классификатора hadoop1
или hadoop2
Я решил эту проблему, добавив библиотеку guava-14.0.1.
Моя проблема была решена путем добавления следующей банки
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>13.0-rc1</version>
</dependency>