Подтвердить что ты не робот

Исключение в потоке "main" java.lang.NoClassDefFoundError: com/google/common/base/Preconditions

При запуске с помощью 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
4b9b3361

Ответ 1

Убедитесь, что вы добавили правильный Jar в свой путь сборки.

Ответ 2

Добавление guava-11.0.2.jar к пути сборки решило проблему. Эта банка находится в папке /share/hadoop/tools/lib. Я установил hasoop 2.4.0.

Ответ 3

это вызвано Guava-x.y.z.jar, потому что оно отсутствует, убедитесь, что вы добавили его

Ответ 5

В вашем каталоге Hadoop lib содержатся все файлы jar, которые вы использовали в проекте eclipse?

Если не поместить их в каталог Hadoop lib и перезапустить hasoop.

Ответ 6

У меня тоже была эта ошибка при попытке использовать MRUnit, и зависимость maven не была найдена, поэтому я попытался добавить ее вручную. Это ваш случай?

Проблема заключается в том, что если вы добавите банку вручную, она будет продолжать просить остальную часть баннеров MRUnit (те, что находятся в папке MRUnit), пока вы не добавите их все с той же версией как в его pom.

причина mrunit не найдена в том, что я не использовал необходимый классификатор в объявлении dependecy

решение добавление классификатора hadoop1 или hadoop2

Ответ 7

Я решил эту проблему, добавив библиотеку guava-14.0.1.

Ответ 8

Моя проблема была решена путем добавления следующей банки

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>13.0-rc1</version>
</dependency>