복붙노트

[HADOOP] thread "main"의 예외 java.lang.NoClassDefFoundError : com / google / common / base / 전제 조건

HADOOP

thread "main"의 예외 java.lang.NoClassDefFoundError : com / google / common / base / 전제 조건

자바지도에 의해 실행하는 동안 일식에서 응용 프로그램을 줄이고, 아래의 예외를 직면해라. Commons-logging-1.2.jar 파일을 빌드 경로에 포함 시켰지만 여전히 아래에 있습니다.

나는 새삼 스럽다. 친절하게 도와주세요.

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

해결법

  1. ==============================

    1.빌드 경로에 올바른 Jar를 추가했는지 확인하십시오.

    빌드 경로에 올바른 Jar를 추가했는지 확인하십시오.

  2. ==============================

    2.빌드 경로에 guava-11.0.2.jar를 추가하면 문제가 해결되었습니다. 이 항아리는 / share / hadoop / tools / lib 폴더에 있습니다. hadoop 2.4.0을 설치했습니다.

    빌드 경로에 guava-11.0.2.jar를 추가하면 문제가 해결되었습니다. 이 항아리는 / share / hadoop / tools / lib 폴더에 있습니다. hadoop 2.4.0을 설치했습니다.

  3. ==============================

    3.Guava-x.y.z.jar이 누락 되었기 때문에 발생합니다. 추가했는지 확인하십시오.

    Guava-x.y.z.jar이 누락 되었기 때문에 발생합니다. 추가했는지 확인하십시오.

  4. ==============================

    4.다음에서 Google 컬렉션 JAR 사용

    다음에서 Google 컬렉션 JAR 사용

    이것은 귀하의 문제를 해결할 수 있습니다.

  5. ==============================

    5.내 문제는 다음 항아리를 추가하여 해결되었습니다.

    내 문제는 다음 항아리를 추가하여 해결되었습니다.

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

    6.Hadoop lib 디렉토리에 eclipse 프로젝트에 사용 된 모든 jar 파일이 들어 있습니까?

    Hadoop lib 디렉토리에 eclipse 프로젝트에 사용 된 모든 jar 파일이 들어 있습니까?

    그렇지 않으면 Hadoop lib 디렉토리에 놓고 hadoop을 재시작하십시오.

  7. ==============================

    7.MRUnit을 사용하려고 할 때 maven 종속성을 찾을 수 없을 때이 오류가 발생하여 수동으로 추가하려고했습니다. 이게 당신 사건입니까?

    MRUnit을 사용하려고 할 때 maven 종속성을 찾을 수 없을 때이 오류가 발생하여 수동으로 추가하려고했습니다. 이게 당신 사건입니까?

    문제는 수동으로 jar 파일을 추가하면 pum과 같은 버전으로 모두 추가 할 때까지 MRUnit jar 파일 (MRUnit의 pom 파일에있는 파일)의 나머지 부분을 묻는 데 실패합니다.

    발견되지 않은 mrunit의 원인은 dependecy 선언에서 필요한 분류자를 사용하지 않고 있다는 것이 었습니다.

    해결 방법은 분류 자 ​​hadoop1 또는 hadoop2를 추가하는 것입니다.

  8. ==============================

    8.이 문제는 guava-14.0.1 라이브러리를 추가하여 해결했습니다.

    이 문제는 guava-14.0.1 라이브러리를 추가하여 해결했습니다.

  9. from https://stackoverflow.com/questions/28317911/exception-in-thread-main-java-lang-noclassdeffounderror-com-google-common-bas by cc-by-sa and MIT license