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 릴리스 버전에서 원하는 릴리스의 구성 요소 버전 아래 나열된 버전을 사용합니다. 예를 들어 구성 요소 버전에서 최신 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(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.36.1). 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>