복붙노트

[HADOOP] hadoop-core에 대한 maven artifactId hadoop 2.2.0

HADOOP

hadoop-core에 대한 maven artifactId hadoop 2.2.0

내 애플리케이션을 hadoop 1.0.3에서 hadoop 2.2.0으로 마이그레이션하고 maven 빌드가 hadoop-core를 종속성으로 표시했다. hadoop-core는 hadoop 2.2.0에 존재하지 않으므로. hadoop-client와 hadoop-common으로 바꾸려고했지만 ant.filter에 대해이 오류가 발생했습니다. 아무도 사용할 유물을 제안 할 수 있습니까?

previous config :
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-core</artifactId>
    <version>1.0.3</version>
</dependency>

New Config:

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.2.0</version>
</dependency>

오류:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project event: Compilation failure: Compilation failure:

[ERROR] /opt/teamcity/buildAgent/work/c670ebea1992ec2f/event/src/main/java/com/intel/event/EventContext.java:[27,36] package org.apache.tools.ant.filters does not exist

[ERROR] /opt/teamcity/buildAgent/work/c670ebea1992ec2f/event/src/main/java/com/intel/event/EventContext.java:[27,36] package org.apache.tools.ant.filters does not exist

[ERROR] /opt/teamcity/buildAgent/work/c670ebea1992ec2f/event/src/main/java/com/intel/event/EventContext.java:[180,59] cannot find symbol

[ERROR] symbol: class StringInputStream

[ERROR] location: class com.intel.event.EventContext

해결법

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

    1.우리는 주로 우리의 응용 프로그램에 대한 hdfs API에 의존합니다. hadoop 2.X로 마이그레이션했을 때 우리는 의존성의 변화를 보게되어 놀랐습니다. 우리는 한 번에 하나씩 의존성을 추가하기 시작했습니다. 오늘날 우리는 다음 핵심 라이브러리에 의존합니다.

    우리는 주로 우리의 응용 프로그램에 대한 hdfs API에 의존합니다. hadoop 2.X로 마이그레이션했을 때 우리는 의존성의 변화를 보게되어 놀랐습니다. 우리는 한 번에 하나씩 의존성을 추가하기 시작했습니다. 오늘날 우리는 다음 핵심 라이브러리에 의존합니다.

    hadoop-annotations-2.2.0
    hadoop-auth-2.2.0
    hadoop-common-2.2.0
    hadoop-hdfs-2.2.0
    hadoop-mapreduce-client-core-2.2.0
    

    이 외에도 우리는 테스트 라이브러리에 의존합니다. 필요에 따라 hadoop-hdfs 및 hadoop-mapreduce-client를 hadoop-common과 함께 종속성에 포함 할 수 있습니다.

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

    2.이 인공물을 사용하여 샘플 프로젝트 단어 수를 정확하게 입력하십시오.

    이 인공물을 사용하여 샘플 프로젝트 단어 수를 정확하게 입력하십시오.

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>2.2.0</version>
    </dependency>
    
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-core</artifactId>
        <version>1.2.1</version>
    </dependency>
    
  3. ==============================

    3.Maven 종속성은이 링크에서 얻을 수 있습니다. hadoop-core 의존성이가는 한, hadoop-core는 hadoop 1.X의 이름이었고 버전을 2.X로 바꾸면 도움이되지 않습니다. 또한 hadoop 2.X 프로젝트에서 hadoop 1.X 의존성을 사용하면 다음과 같은 오류가 발생합니다.

    Maven 종속성은이 링크에서 얻을 수 있습니다. hadoop-core 의존성이가는 한, hadoop-core는 hadoop 1.X의 이름이었고 버전을 2.X로 바꾸면 도움이되지 않습니다. 또한 hadoop 2.X 프로젝트에서 hadoop 1.X 의존성을 사용하면 다음과 같은 오류가 발생합니다.

    따라서 그것을 사용하지 않는 것이 좋습니다. 내 hadoop에 다음 종속성을 사용하고 있습니다.

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>2.7.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>2.7.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce-client-core</artifactId>
        <version>2.7.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
        <version>2.7.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce-client-common</artifactId>
        <version>2.7.1</version>
    </dependency>
    <dependency>
    

    이것들을 시험해 볼 수 있습니다.

  4. from https://stackoverflow.com/questions/22366391/maven-artifactid-hadoop-2-2-0-for-hadoop-core by cc-by-sa and MIT license