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 derHiveMetaStoreServiceSchnittstelle 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 KlasseMetadataHandlerist 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, dieMetadataHandlererweitert. -
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.thresholddefiniert. Das Ändern des Standardwerts wird nicht empfohlen.
-
Anmerkung
Diese beiden Eigenschaften können von den Lambda-Umgebungsvariablen
HMS_URISundSPILL_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-handlerund 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.