Amazon EMR アーティファクトリポジトリを使用して依存関係を確認する - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EMR アーティファクトリポジトリを使用して依存関係を確認する

Amazon EMR リリースバージョン 5.18.0 以降では、Amazon EMR アーティファクトリポジトリを使用し、特定の Amazon EMR リリースバージョンで利用可能なライブラリおよび依存関係の正確なバージョンに対して Apache Hive および Apache Hadoop のジョブコードをビルドできます。リポジトリの Amazon EMR アーティファクトに対してビルドすると、ジョブがビルドされるライブラリのバージョンがクラスターでの実行時に提供されるバージョンと正確に同じになるため、ランタイムクラスパスの問題を回避できます。現在、Amazon EMR アーティファクトは Maven ビルドでのみ使用可能です。

アーティファクトリポジトリにアクセスするには、リポジトリ URL を Maven 設定ファイルまたは特定のプロジェクトの pom.xml 設定ファイルに追加します。その後、プロジェクト設定に依存関係を指定できます。依存関係のバージョンについては、Amazon EMR 5.x リリースバージョン にある目的のリリースのコンポーネントバージョンの下にリストされているバージョンを使用します。例えば、最新の Amazon EMR リリースのコンポーネントバージョンは 5.36.2 コンポーネントバージョン にあります。プロジェクトのアーティファクトがコンポーネントバージョンにリストされていない場合は、そのリリースの 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.comus-west-1 です。詳細については、「Amazon Web Services 全般のリファレンス」の Amazon S3 エンドポイントを参照してください。リージョン間でアーティファクトに違いはないため、開発環境に対して最も便利なリージョンを指定することができます。

  • emr-release-label は、コードを実行する Amazon EMR クラスターのリリースラベルです。リリースラベルは emr-x.x.x 形式 (emr-5.36.2 など) です。EMR リリースシリーズには、複数のリリースが含まれる場合があります。たとえば、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>