Amazon EMR 아티팩트 리포지토리를 사용하여 종속성 확인 - Amazon EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon EMR 아티팩트 리포지토리를 사용하여 종속성 확인

Amazon EMR 아티팩트 리포지토리를 사용하여 Amazon EMR 릴리스 버전 5.18.0부터 특정 Amazon EMR 릴리스 버전에 사용할 수 있는 정확한 버전의 라이브러리와 종속성에 대해 Apache Hive 및 Apache Hadoop 작업 코드를 빌드할 수 있습니다. 리포지토리에 있는 Amazon EMR 아티팩트에 대해 빌드하면 작업이 빌드된 라이브러리의 버전이 클러스터에서 런타임에 제공되는 버전과 똑같아지므로 런타임 클래스 경로 문제를 피할 수 있습니다. 현재로서는 Maven 빌드에만 Amazon EMR 아티팩트를 사용할 수 있습니다.

아티팩트 리포지토리에 액세스하려면 리포지토리 URL을 Maven 설정 파일이나 특정 프로젝트의 pom.xml 구성 파일에 추가하십시오. 그런 다음 프로젝트 구성에서 종속성을 지정할 수 있습니다. 종속성 버전은 Amazon EMR 5.x 릴리스 버전에서 원하는 릴리스의 구성 요소 버전에 나열된 버전을 사용하십시오. 예를 들어 Component Versions에서 최신 Amazon EMR 릴리스의 구성 요소 버전을 볼 수 있습니다. 프로젝트의 아티팩트가 구성 요소 버전에 나열되어 있지 않으면 해당 릴리스의 Hive 및 Hadoop에 대해 나열된 버전을 지정하십시오. 예를 들어 Amazon EMR 릴리스 버전 5.18.0의 Hadoop 구성 요소는 버전이 2.8.4-amzn-1입니다.

아티팩트 리포지토리 URL의 구문은 다음과 같습니다.

https://s3-endpoint/region-ID-emr-artifacts/emr-release-label/repos/maven/
  • s3-endpoint는 리포지토리에 대한 리전의 Amazon Simple Storage Service(Amazon S3) 엔드포인트이고, region-ID는 해당 리전입니다. 예: s3.us-west-1.amazonaws.com, us-west-1. 자세한 내용은 Amazon Web Services 일반 참조의 Amazon S3 엔드포인트를 참조하십시오. 리전 사이의 아티팩트에는 차이가 없으므로 개발 환경에 가장 편리한 리전을 지정할 수 있습니다.

  • emr-release-label은 코드를 실행할 Amazon EMR 클러스터의 릴리스 레이블입니다. 릴리스 레이블은 emr-x.x.x 형식을 따릅니다(예: emr-5.31.0). EMR 릴리스 시리즈 1개에는 다수의 릴리스가 포함될 수 있습니다. 예를 들어 EMR 릴리스 버전 5.24.1을 사용하고 있다면 아티팩트 리포지토리 URL에 5.24 시리즈의 첫 번째 EMR 릴리스 레이블인 emr-5.24.0을 사용하십시오.

    https://s3-endpoint/region-ID-emr-artifacts/emr-5.24.0/repos/maven/

예 Maven pom.xml을 위한 구성

아래의 pom.xml 예제는 us-west-1에 있는 아티팩트 리포지토리를 사용하여 emr-5.18.0 Apache Hadoop 및 Apache Hive 아티팩트에 대해 빌드하도록 Maven 프로젝트를 구성합니다. 아티팩트 리포지토리에서 스냅샷 버전을 사용할 수 없으므로 pom.xml에서 스냅샷이 비활성화됩니다. 아래 예제의 줄임표(...)는 다른 구성 파라미터가 생략되었음을 나타내므로 Maven 프로젝트에 복사하지 마십시오.

<project> ... <repositories> ... <repository> <id>emr-5.18.0-artifacts</id> <name>EMR 5.18.0 Releases Repository</name> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> <url>https://s3.us-west-1.amazonaws.com/us-west-1-emr-artifacts/emr-5.18.0/repos/maven/</url> </repository> ... </repositories> ... <dependencies> ... <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</artifactId> <version>2.3.3-amzn-2</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.8.4-amzn-1</version> </dependency> ... </dependencies> </project>