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.
Athena mit einem Hive-Metastore mithilfe einer vorhandenen IAM-Ausführungsrolle verbinden
Um Ihren externen Hive-Metastore mit Athena über eine Lambda-Funktion zu verbinden, die eine vorhandene IAM-Rolle verwendet, können Sie die Referenzimplementierung des Athena-Connectors für externen Hive-Metastore von Athena verwenden.
Die drei wichtigsten Schritte sind wie folgt:
-
Klonen und Entwickeln – Klonen Sie die Athena Referenzimplementierung und erstellen Sie die JAR-Datei, die den Lambda-Funktionscode enthält.
-
AWS Lambda-Konsole – Erstellen Sie in der AWS Lambda-Konsole eine Lambda-Funktion, weisen Sie ihr eine vorhandene IAM-Ausführungsrolle zu und laden Sie den von Ihnen generierten Funktionscode hoch.
-
Amazon-Athena-Konsole – Erstellen Sie in der Amazon-Athena-Konsole einen Datenquellennamen, mit dem Sie in Ihren Athena-Abfragen auf Ihren externen Hive-Metastore verweisen können.
Wenn Sie bereits über Berechtigungen zum Erstellen einer benutzerdefinierten IAM-Rolle verfügen, können Sie einen einfacheren Workflow verwenden, der die Athena-Konsole und das AWS Serverless Application Repository verwendet, um eine Lambda-Funktion zu erstellen und zu konfigurieren. Weitere Informationen finden Sie unter Verbinden Sie Athena zu einem Apache Hive-Metastore.
Voraussetzungen
-
Git muss auf Ihrem System installiert sein.
-
Sie müssen Apache Maven
installiert haben. -
Sie haben eine IAM-Ausführungsrolle, die Sie der Lambda-Funktion zuweisen können. Weitere Informationen finden Sie unter Gewährung von Lambda-Funktionszugriff auf externe Hive-Metastores.
Klonen und entwickeln Sie die Lambda-Funktion
Der Funktionscode für die Athena-Referenzimplementierung ist ein Maven-Projekt, das sich auf GitHub unter awslabs/aws-athena-hive-metastore
So Klonen und erstellen Sie den Lambda-Funktionscode
-
Geben Sie den folgenden Befehl ein, um die Athena Referenzimplementierung zu klonen:
git clone https://github.com/awslabs/aws-athena-hive-metastore -
Führen Sie den folgenden Befehl aus, um die
.jar-Datei für die Lambda-Funktion zu entwickeln:mvn clean installNachdem das Projekt erfolgreich erstellt wurde, wird die folgende
.jar-Datei im Zielordner Ihres Projekts erstellt:hms-lambda-func-1.0-SNAPSHOT-withdep.jarIm nächsten Abschnitt verwenden Sie die AWS Lambda-Konsole, um diese Datei in Ihr Amazon-Web-Services-Konto hochzuladen.
Erstellen und konfigurieren Sie die Lambda-Funktion in der AWS Lambda-Konsole
In diesem Abschnitt verwenden Sie die AWS Lambda-Konsole, um eine Funktion zu erstellen, die eine vorhandene IAM-Ausführungsrolle verwendet. Nachdem Sie eine VPC für die Funktion konfiguriert haben, laden Sie den Funktionscode hoch und konfigurieren die Umgebungsvariablen für die Funktion.
So erstellen Sie die Lambda-Funktion:
In diesem Schritt erstellen Sie in der AWS Lambda-Konsole eine Funktion, die eine vorhandene IAM-Rolle verwendet.
So erstellen Sie eine Lambda-Funktion, die eine vorhandene IAM-Rolle verwendet
Melden Sie sich bei AWS-Managementkonsole an und öffnen Sie die AWS Lambda-Konsole unter https://console.aws.amazon.com/lambda
. -
Wählen Sie im Navigationsbereich Funktionen aus.
-
Wählen Sie Create function (Funktion erstellen).
-
Wählen Sie Von Grund auf neu schreiben aus.
-
Geben Sie für Funktionsname den Namen Ihrer Lambda-Funktion ein (z. B.
EHMSBasedLambda). -
Wählen Sie für Runtime die Option Java 8.
-
Erweitern Sie unter Berechtigungen die Option Standardausführungsrolle ändern.
-
Wählen Sie für Execution role (Ausführungsrolle) die Option Use an existing role (Vorhandene Rolle verwenden) aus.
-
Wählen Sie für Vorhandene Rolle die IAM-Ausführungsrolle aus, die Ihre Lambda-Funktion für Athena verwendet (in diesem Beispiel wird eine Rolle namens
AthenaLambdaExecutionRoleverwendet). -
Erweiterten Sie Advanced settings (Erweiterte Einstellungen).
-
Wählen Sie Netzwerk aktivieren aus.
-
Wählen Sie für VPC die VPC aus, auf die Ihre Funktion Zugriff hat.
-
Wählen Sie für Subnetze die VPC-Subnetze aus, die Lambda verwenden soll.
-
Wählen Sie für Sicherheitsgruppen die VPC-Sicherheitsgruppen aus, die Lambda verwenden soll.
-
Wählen Sie Create function (Funktion erstellen). Die AWS Lambda-Konsole und öffnet die Konfigurationsseite für Ihre Funktion und beginnt mit der Erstellung Ihrer Funktion.
Laden Sie den Code hoch und konfigurieren Sie die Lambda-Funktion
Wenn die Konsole Sie darüber informiert, dass Ihre Funktion erfolgreich erstellt wurde, können Sie den Funktionscode hochladen und seine Umgebungsvariablen konfigurieren.
So laden Sie Ihren Lambda-Funktionscode hoch und konfigurieren die Umgebungsvariablen
-
Stellen Sie in der Lambda-Konsole sicher, dass Sie sich auf der Seite der von Ihnen angegebenen Funktion auf der Registerkarte Code befinden.
-
Wählen Sie für Code source (Quellcode) Upload from (Hochladen von) und anschließend .zip or .jar file (.zip- oder .jar-Datei) aus.
-
Laden Sie die zuvor erstellte
hms-lambda-func-1.0-SNAPSHOT-withdep.jar-Datei hoch. -
Wählen Sie auf der Seite der Lambda-Funktion den Tab Konfiguration.
-
Wählen Sie im Bereich auf der linken Seite Umgebungsvariablen aus.
-
Wählen Sie im Abschnitt Environment variables (Umgebungsvariablen) Edit (Bearbeiten) aus.
-
Verwenden Sie auf der Seite Edit environment variables (Umgebungsvariablen bearbeiten) die Option Add environment variable (Umgebungsvariable hinzufügen), um die folgenden Umgebungsvariablenschlüssel und -werte hinzuzufügen:
-
HMS_URIS – Verwenden Sie die folgende Syntax, um den URI Ihres Hive-Metastore-Hosts einzugeben, der das Thrift-Protokoll an Port 9083 verwendet.
thrift://<host_name>:9083 -
SPILL_LOCATION – Geben Sie in Ihrem Amazon-Web-Services-Konto einen Amazon-S3-Speicherort an, um Spillover-Metadaten zu speichern, wenn die Antwortgröße der Lambda-Funktion 4 MB überschreitet.
-
-
Wählen Sie Save (Speichern) aus.
Zu diesem Zeitpunkt können Sie Athena so konfigurieren, dass Ihre Lambda-Funktion zum Herstellen einer Verbindung mit Ihrem Hive-Metastore verwendet wird. Informationen zu den erforderlichen Schritten finden Sie unter Konfigurieren Sie Athena für die Verwendung eines bereitgestellten Hive-Metastore-Connectors.