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.
Ändern Sie den externen Hive-Metastore-Konnektor von Athena
Wenn Sie spezielle Anforderungen haben, können Sie den Athena-Konnektor für den externen Hive-Metastore für Ihren eigenen Gebrauch modifizieren. Athena bietet eine Referenzimplementierung des Connectors auf GitHub .com unter https://github.com/awslabs/aws-athena-hive-metastore
Die Referenzimplementierung ist ein Apache-Maven
-
hms-service-api
— Enthält die API Operationen zwischen der Lambda-Funktion und den Athena-Serviceclients. Diese API Operationen sind in derHiveMetaStoreService
Schnittstelle definiert. Da es sich um einen Servicevertrag handelt, sollten Sie in diesem Modul nichts ändern. -
hms-lambda-handler
— Eine Reihe von Standard-Lambda-Handlern, die alle Hive-Metastore-Aufrufe verarbeiten. API Die KlasseMetadataHandler
ist der Dispatcher für alle Aufrufe. API Sie müssen dieses Paket nicht ändern. -
hms-lambda-func
– Eine Lambda-Beispielfunktion mit den folgenden Komponenten.-
HiveMetaStoreLambdaFunc
– Eine Lambda-Beispielfunktion, dieMetadataHandler
erweitert. -
ThriftHiveMetaStoreClient
– Ein Thrift-Client, der mit dem Hive-Metastore kommuniziert. Dieser Client ist für Hive 2.3.0 geschrieben. Wenn Sie eine andere Hive-Version verwenden, müssen Sie diese Klasse möglicherweise aktualisieren, um sicherzustellen, dass die Antwortobjekte kompatibel sind. -
ThriftHiveMetaStoreClientFactory
– Steuert das Verhalten der Lambda-Funktion. Beispielsweise können Sie Ihre eigene Gruppe von Handler-Anbietern bereitstellen, indem Sie diegetHandlerProvider()
-Methode überschreiben. -
hms.properties
– Konfigurieren Sie die Lambda-Funktion In den meisten Fällen müssen nur die folgenden beiden Eigenschaften aktualisiert werden.-
hive.metastore.uris
— der URI des Hive-Metastores im Format.thrift://
<host_name>
:9083 -
hive.metastore.response.spill.location
: Der Amazon-S3-Speicherort zum Speichern von Antwortobjekten, wenn ihre Größe einen bestimmten Schwellenwert überschreitet (z. B. 4 MB). Der Schwellenwert wird in der Eigenschafthive.metastore.response.spill.threshold
definiert. Das Ändern des Standardwerts wird nicht empfohlen.
-
Anmerkung
Diese beiden Eigenschaften können von den Lambda-Umgebungsvariablen
HMS_URIS
undSPILL_LOCATION
überschrieben werden. Verwenden Sie diese Variablen, anstatt den Quellcode für die Lambda-Funktion neu zu kompilieren, wenn Sie die Funktion mit einem anderen Hive-Metastore oder Überlaufspeicherort verwenden möchten. -
-
hms-lambda-layer
– Ein Maven-Assemblyprojekt, dashms-service-api
,hms-lambda-handler
und ihre Abhängigkeiten in eine.zip
-Datei setzt. Die.zip
-Datei wird als Lambda-Ebene für die Verwendung durch mehrere Lambda-Funktionen registriert. -
hms-lambda-rnp
– Zeichnet die Antworten einer Lambda-Funktion auf und verwendet sie dann zur Wiedergabe der Antwort. Sie können dieses Modell verwenden, um Lambda-Antworten zu Testzwecken zu simulieren.
Entwickeln der Artefakte
Nachdem Sie den Quellcode geändert haben, können Sie die Artefakte selbst erstellen und an einen Amazon S3 S3-Speicherort hochladen.
Bevor Sie die Artefakte erstellen, aktualisieren Sie die Eigenschaften hive.metastore.uris
und hive.metastore.response.spill.location
in der hms.properties
-Datei im hms-lambda-func
-Modul.
Um die Artefakte zu erstellen, müssen Sie Apache Maven installiert haben und den Befehl mvn install
ausführen. Dies erzeugt die Ebene-.zip
-Datei im Ausgabeordner mit dem Namen target
im Modul hms-lambda-layer
und die Lambda-Funktions-.jar
-Datei im Modul hms-lambd-func
.