복붙노트

[HADOOP] 자바 5와 함께 0.20.2 API hadoop 버전

HADOOP

자바 5와 함께 0.20.2 API hadoop 버전

java 1.5.0_14에서 MapReduce 알고리즘을 구현하려고하는 maven 프로젝트를 시작했습니다. 0.20.2 API hadoop 버전을 선택했습니다. pom.xml에서 다음 종속성을 사용하고 있습니다.

<의존성>

< groupId>org.apache.hadoop< /groupId>      
< artifactId>hadoop-core< /artifactId>      
< version>0.20.2< /version>

하지만 org.apache.hadoop 클래스에 대한 가져 오기를 사용할 때 다음 오류가 발생합니다.

불량 클래스 파일 : $ {HOME_DIR} \ repository \ org \ apache \ hadoop \ hadoop-core \ 0.20.2 \ hadoop-core-0.20.2.jar (org / apache / hadoop / fs / Path.class) 클래스 파일의 버전이 50.0이고 49.0이어야합니다.

누군가이 문제를 어떻게 해결할 수 있는지 알고 있습니까?

감사.

해결법

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

    1.Maven은 기본적으로 JDK 1.4와 호환된다. 이걸 바꿔야 해.

    Maven은 기본적으로 JDK 1.4와 호환된다. 이걸 바꿔야 해.

    이것을 pom.xml에 추가해야합니다 :

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.0.2</version>
        <configuration>
            <source>1.6</source>
            <target>1.6</target>
        </configuration>
    </plugin>
    

    [편집 : Sean이 JDK 6이 필요한 Hadoop을 지적 해 주셔서 감사합니다]

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

    2.나는 똑같은 문제에 부딪쳤다. 실제로 sbt가 Java 5에서 실행 중이 었는데, 이는 바보이지만 유효한 이유로 Mac에서 기본 설정입니다. 일단 자바 스크립트를 명시 적으로 시작하도록 sbt 스크립트를 변경하면 모든 것이 잘 동작합니다.

    나는 똑같은 문제에 부딪쳤다. 실제로 sbt가 Java 5에서 실행 중이 었는데, 이는 바보이지만 유효한 이유로 Mac에서 기본 설정입니다. 일단 자바 스크립트를 명시 적으로 시작하도록 sbt 스크립트를 변경하면 모든 것이 잘 동작합니다.

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

    3.maven-compiler-plugin의 소스 및 타겟 구성 (자신의 소스 코드 컴파일 방법 만 제어 함)에 관계없이 "1.6"JVM을 대상으로 컴파일되므로 Hadoop의 코드를 실행하려면 1.6 JVM을 사용해야합니다.

    maven-compiler-plugin의 소스 및 타겟 구성 (자신의 소스 코드 컴파일 방법 만 제어 함)에 관계없이 "1.6"JVM을 대상으로 컴파일되므로 Hadoop의 코드를 실행하려면 1.6 JVM을 사용해야합니다.

    그래서, 1.6 자바 런타임을 설치하고 프로그램을 실행하는 데 사용하십시오.

  4. from https://stackoverflow.com/questions/2990595/0-20-2-api-hadoop-version-with-java-5 by cc-by-sa and MIT license