Prüfen von Abhängigkeiten mit dem Amazon EMR-Artefakt-Repository - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Prüfen von Abhängigkeiten mit dem Amazon EMR-Artefakt-Repository

Mit dem Amazon EMR-Artefakt-Repository können Sie Apache Hive- und Apache Hadoop-Job-Code auf der Grundlage der exakten Versionen von Bibliotheken und Abhängigkeiten aufbauen, die mit bestimmten Amazon EMR-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, Runtime-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 Component Versions 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 Amazon S3-Endpunkte im 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.31.0. 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>