Athena mit einem Hive-Metastore mithilfe einer vorhandenen IAM-Ausführungsrolle verbinden - Amazon Athena

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:

  1. Klonen und Entwickeln – Klonen Sie die Athena Referenzimplementierung und erstellen Sie die JAR-Datei, die den Lambda-Funktionscode enthält.

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

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

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 befindet. Ausführliche Informationen zum Projekt finden Sie in der entsprechenden README-Datei auf GitHub oder im Den externen Hive-Metastore-Konnektor von Athena ändern-Thema in dieser Dokumentation.

So Klonen und erstellen Sie den Lambda-Funktionscode
  1. Geben Sie den folgenden Befehl ein, um die Athena Referenzimplementierung zu klonen:

    git clone https://github.com/awslabs/aws-athena-hive-metastore
  2. Führen Sie den folgenden Befehl aus, um die .jar-Datei für die Lambda-Funktion zu entwickeln:

    mvn clean install

    Nachdem das Projekt erfolgreich erstellt wurde, wird die folgende .jar-Datei im Zielordner Ihres Projekts erstellt:

    hms-lambda-func-1.0-SNAPSHOT-withdep.jar

    Im 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
  1. Melden Sie sich bei AWS-Managementkonsole an und öffnen Sie die AWS Lambda-Konsole unter https://console.aws.amazon.com/lambda.

  2. Wählen Sie im Navigationsbereich Funktionen aus.

  3. Wählen Sie Create function (Funktion erstellen).

  4. Wählen Sie Von Grund auf neu schreiben aus.

  5. Geben Sie für Funktionsname den Namen Ihrer Lambda-Funktion ein (z. B. EHMSBasedLambda).

  6. Wählen Sie für Runtime die Option Java 8.

  7. Erweitern Sie unter Berechtigungen die Option Standardausführungsrolle ändern.

  8. Wählen Sie für Execution role (Ausführungsrolle) die Option Use an existing role (Vorhandene Rolle verwenden) aus.

  9. 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 AthenaLambdaExecutionRole verwendet).

  10. Erweiterten Sie Advanced settings (Erweiterte Einstellungen).

  11. Wählen Sie Netzwerk aktivieren aus.

  12. Wählen Sie für VPC die VPC aus, auf die Ihre Funktion Zugriff hat.

  13. Wählen Sie für Subnetze die VPC-Subnetze aus, die Lambda verwenden soll.

  14. Wählen Sie für Sicherheitsgruppen die VPC-Sicherheitsgruppen aus, die Lambda verwenden soll.

  15. 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
  1. Stellen Sie in der Lambda-Konsole sicher, dass Sie sich auf der Seite der von Ihnen angegebenen Funktion auf der Registerkarte Code befinden.

  2. Wählen Sie für Code source (Quellcode) Upload from (Hochladen von) und anschließend .zip or .jar file (.zip- oder .jar-Datei) aus.

  3. Laden Sie die zuvor erstellte hms-lambda-func-1.0-SNAPSHOT-withdep.jar-Datei hoch.

  4. Wählen Sie auf der Seite der Lambda-Funktion den Tab Konfiguration.

  5. Wählen Sie im Bereich auf der linken Seite Umgebungsvariablen aus.

  6. Wählen Sie im Abschnitt Environment variables (Umgebungsvariablen) Edit (Bearbeiten) aus.

    Wählen Sie Edit (Bearbeiten), um die Umgebungsvariablen für die Lambda-Funktion zu bearbeiten.
  7. 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.

      Angeben von Werten für die Umgebungsvariablen der Lambda-Funktion.
  8. 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.