Überprüfen von Abhängigkeiten mithilfe des Amazon-EMR-Artefakt-Repositorys - Amazon EMR

Überprüfen von Abhängigkeiten mithilfe des Amazon-EMR-Artefakt-Repositorys

Sie können das Amazon-EMR-Artefakt-Repository verwenden, um Apache-Hive- und Apache-Hadoop-Jobcode anhand der genauen Versionen von Bibliotheken und Abhängigkeiten zu erstellen, die mit bestimmten Amazon EMR-Release-Versionen verfügbar sind, beginnend mit Amazon-EMR-Version 5.18.0. Die Erstellung auf der Grundlage von Amazon-EMR-Artefakten im Repository hilft dabei, Laufzeit-Klassen-Probleme zu vermeiden, da sichergestellt wird, dass die Versionen der Bibliotheken, auf deren Grundlage der Job erstellt wird, exakt den Versionen entsprechen, die zur Laufzeit auf dem Cluster bereitgestellt werden. Derzeit sind Amazon-EMR-Artefakte nur für Maven-Builds verfügbar.

Fügen Sie zum Zugriff auf das Artefakt-Repository Ihrer Maven-Einstellungsdatei oder der pom.xml-Konfigurationsdatei eines bestimmten Projekts die Repository-URL hinzu. Anschließend können Sie die Abhängigkeiten in Ihrer Projektkonfiguration angeben. Verwenden Sie für Abhängigkeitsversionen die unter Komponentenversionen für die gewünschte Version auf Amazon-EMR-5.x-Versionen aufgeführte Version. Beispielsweise sind Komponentenversionen für die aktuelle Amazon-EMR-Version unter Versionen der Komponenten verfügbar. Wenn ein Artefakt für Ihr Projekt nicht unter Komponentenversionen aufgeführt ist, geben Sie die Version an, die in diesem Release für Hive und Hadoop aufgeführt ist. Beispielsweise ist für Hadoop-Komponenten in Amazon-EMR-Version 5.18.0 die Version 2.8.4-amzn-1.

Die Artefakt-Repository-URL hat die folgende Syntax:

https://s3-endpoint/region-ID-emr-artifacts/emr-release-label/repos/maven/
  • s3-endpoint ist der Amazon Simple Storage Service (Amazon S3)-Endpunkt der Region für das Repository, und region-ID ist die entsprechende Region. Beispiel: s3.us-west-1.amazonaws.com und us-west-1. Weitere Informationen finden Sie unter Endpunkte für Amazon S3 in Allgemeine Amazon Web Services-Referenz. Es gibt keinen Unterschied hinsichtlich der Artefakte zwischen Regionen. So können Sie die am besten geeignete Region für Ihre Entwicklungsumgebung angeben.

  • emr-release-label ist die Versionsbezeichnung für den Amazon-EMR-Cluster, der Ihren Code ausführen wird. Versionsbezeichnungen haben das Format emr-x.x.x, z. B. emr-5.36.1. Eine EMR-Veröffentlichungsserie kann mehrere Veröffentlichungen enthalten. Wenn Sie beispielsweise EMR-Version 5.24.1 verwenden, verwenden Sie die erste EMR-Versionsbezeichnung innerhalb der 5.24-Serie, emr-5.24.0, in der Artefakt-Repository-URL:

    https://s3-endpoint/region-ID-emr-artifacts/emr-5.24.0/repos/maven/
Beispiel Konfiguration für Maven pom.xml

Das pom.xml-Beispiel unten konfiguriert ein Maven-Projekt zum Erstellen auf der Grundlage der emr-5.18.0 Apache Hadoop- und Apache Hive-Artefakte unter Verwendung des Artefakt-Repositorys in us-west-1. Snapshot-Versionen sind im Artefakt-Repository nicht verfügbar, so dass Snapshots im pom.xml deaktiviert sind. Auslassungspunkte (...) im folgenden Beispiel zeigen die Auslassung anderer Konfigurationsparameter an. Kopieren Sie diese nicht in Ihr Maven-Projekt.

<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>